Подтвердить что ты не робот

Файл Crashlytics не найден

Недавно был открыт проект, который я скомпилировал и отправил в Apple.

Я не трогал его пару месяцев, но я получаю эту нечетную ошибку компиляции:

#import <Crashlytics/Crashlytics.h>

Ошибка:

'Crashlytics/Crashlytics.h' file not found

Очевидно, что рамки не могут быть найдены, но я озадачен тем, почему, когда проект работал несколько месяцев назад, он внезапно прекратился.

Любые предложения, почему?

Xcode: 4.6.3 Mac OS X: 10.8.4

4b9b3361

Ответ 1

Просто добавьте $(SRCROOT) в Пути поиска в кармане в настройках сборки проекта (пути поиска).

Процесс установки Crashlytics переносит его Crashlytics.framework в вашу папку проекта (или создает символическую ссылку).

Если вы переместили Crashlytics.framework где-то глубже в иерархию папок проекта - установите "рекурсивный" вправо или просто укажите прямо в свою родительскую папку в Header Search Paths:

$(SRCROOT)/Path/to/the/folder/containing/Crashlytics.framework

Ответ 2

Удалите фреймворки из проекта и диска. Убедитесь, что у вас установлена ​​самая новая версия плагина Fabric.

Скопируйте рамки из папки плагина на рабочий стол с помощью следующих команд:

ditto -xk ~/Library/Caches/com.crashlytics.mac/5b91b14e832a7b1c29441ec5ba109810/sdks/ios/com.twitter.crashlytics.ios-default.zip ~/Desktop/

ditto -xk ~/Library/Caches/com.crashlytics.mac/5b91b14e832a7b1c29441ec5ba109810/sdks/ios/io.fabric.sdk.ios-default.zip ~/Desktop/

Добавьте фреймворки с рабочего стола на свой проект.

Информация от: https://twittercommunity.com/t/error-upgrading-from-crashlytics-on-ios/36196/2

Ответ 3

Я бы рекомендовал использовать CocoaPods для добавления рамки Crashlytics. Больше не нужно заботиться о путях.

Podfile:

pod 'Crashlytics', '~> 3.4.1'

Script Фаза сборки для загрузки dSYM:

./Pods/Crashlytics/iOS/Crashlytics.framework/run <your_crashlytics_id>

Импорт

#import <Crashlytics/Crashlytics.h>

Ответ 4

Для меня это сработало:

Извлеките структуру и крашетики из вашего проекта и удалите файлы с диска для нашего проекта.

Прокомментируйте строки в вашем файле appdelegate.m, если вы добавили их для следующего:

import Fabric/Fabric.h
import Crashlytics/Crashlytics.h

и

[Fabric with:@[CrashlyticsKit]];

В приложении "Ткань" выберите "Новое приложение" и выберите файл проекта Xcode

Восстановите сборку script и создайте в соответствии с инструкциями. Шаг сборки - это то, почему вам нужно прокомментировать строки выше - это не сработает, если вы оставите эти строки.

После запуска сборки script она предложит вам перетащить фреймворки из окна приложения в свой навигатор проектов. Это скопирует последние версии его фреймворков (включая файлы .h) в ваш проект

Я попытался выполнить ручную загрузку и копирование из других проектов, но это единственный способ восстановить после потери файлов фреймворков для приложения.

Ответ 5

В моем случае Framework находился в папке проекта, но не в Project Navigator. Я перетащил его в проект, и все сработало нормально.

Ответ 6

У меня была проблема с работающими распределенными командами (через github) после проверки, а затем проверки Crashlytics. В Crashlytics.framework будет только одна папка внутри - "Версии". Вам нужно сохранить версию содержимого внутри Crashlytics.framework в другое место, а затем скопировать их в Crashlytics.framework позже.

Ответ 7

Удалите Crashlytics.framework из проекта и диск. Скопируйте и добавьте его снова. Это помогло мне.

Ответ 8

В моем случае я перешел из старой установки Crashlytics через приложение Mac в Cocoapods. Многие ответы на этот вопрос рекомендуют полностью удалить все и начать все заново. Я начал делать это и заметил несоответствие между кодом, найденным в Документация Fabric и кодом, указанным в приложении Fabric, на том шаге, где он сообщает вам, что скопируйте в свою рабочую фазу Script.

Документация по ткани содержит двойные кавычки, окружающие всю строку: "${PODS_ROOT}/Fabric/Fabric.framework/run <Your_API_Key> <Your_Build_Secret>"

В приложении Fabric только два кавычки по пути к исполняемому файлу run: "${PODS_ROOT}/Fabric/Fabric.framework/run" <Your_API_Key> <Your_Build_Secret>

Итак, прежде чем вы удалите все и начнете, попробуйте обновить Run Script Build Phase до этого:

"${PODS_ROOT}/Fabric/Fabric.framework/run" <Your_API_Key> <Your_Build_Secret>

Ответ 9

Я изменил имя рабочей папки, и Craslytics терпит неудачу. Проверьте это в настройках сборки (пути поиска).

Удачи!

Ответ 10

Я попытался воспроизвести путь поиска фреймворков и переместить и снова подключить файл фреймворка; проверили настройки сборки (Link binary with libraries section), но ошибка сохранилась.

Наконец, я переустановил фреймворк, который занимает всего 2-3 минуты. Проблема может быть вызвана тем, что вы перенесли Crashlytics.framework в другую подпапку из корневого каталога, но я не уверен в конкретной причине.

  • Удалить все, что касается Crashlytics
  • Запустите приложение crashlytics, войдите в систему и выберите свой проект.
  • Добавить run script
  • Перетащите файл .framework(я сохранил его в корневой папке)
  • Добавьте инструкции import и startWithAPIKey назад

Ответ 11

  • Полностью удалить Crashlytics Frameworks на вашем proj включить оболочку script в App Build Phases Run Script.
  • Переустановите ткань, следуя руководству, все будет в порядке.

Ответ 12

Я ранее обновлялся до Fabric и не имел проблем. Через пару дней я снова открыл тот же проект и имел недостающую проблему crashlytics.h.

Я не мог просто переустановить из плагина из-за не компилируемого проекта (у меня было так много сообщений CLS_LOG и ссылок на отсутствующий файл crashlytics.h в моем проекте, это потребовало бы много времени, чтобы удалить их только для разрешить сборку работать - рефакторинг не будет работать на CLS_LOG).

Итак, вместо этого я удалил crashlytics.framework из моего проекта и сделал следующее, чтобы восстановить его непосредственно из подключаемого модуля:

  • Загрузите плагин Fabric еще раз и дважды щелкните zip файл, чтобы распаковать приложение Fabric.

  • Щелкните правой кнопкой мыши значок "Ткань" и "Показать содержимое пакета"

  • Скопируйте папку Crashlytics.framework на рабочий стол, а затем снова добавьте ее в свой проект через File → Add Files to....

Если шаг 3 не работает для вас, вы также можете добавить crashlytics.framework в свою папку проекта на свой компьютер напрямую, а затем добавить его в свой список проектов через Xcode так же, как на шаге 3, но снимите флажок "Копировать элементы если необходимо", так как вы уже разместили файлы там сами.

Мой проект затем скомпилирован и снова работает отлично.

С точки зрения того, почему файл пропал? Часть процесса обновления заставила меня удалить старые фреймворки, а затем запустить скрипты и т.д. Из плагина. Я думаю, что случилось позже, когда я опустошил свой мусор, что некоторые ссылки были потеряны. У меня также возникла проблема, когда я поместил Crashlytics в мой файл .gitignore, чтобы он исчез из всех моих проектов, которые были совершены, и это было не так.

Надеюсь, это поможет кому-то!

Ответ 13

Используйте pod update это помогло мне лично