Firebase Crashlytics: загрузите недостающие dSYM, чтобы увидеть сбои из 1 версии.(IOS)
Сообщение об ошибке: Загрузите отсутствующие dSYM, чтобы увидеть сбои из 1 версии. Затронутые версии: 1.0 (1)
Я пытаюсь реализовать Firebase Crashlytics в моем проекте iOS. Я сделал все настройки согласно Firebase Crashlytics Doucmentation. Авария выполняется вручную при нажатии кнопки, чтобы посмотреть, работает ли аварийный сбой.
@IBAction func onTestCrashButtonClick(_ sender: UIButton) {
Crashlytics.sharedInstance().crash()
}
Но когда я попытался увидеть отчет об ошибке в консоли Firebase, он показывает что-то вроде этого изображения.
После прочтения отчетов о сбоях Get Deobfuscated я просто установил формат отладочной информации в DWARF с файлом dSYM, как показано ниже, но проблема до сих пор не устранена.
23 ответа
Единственный и простой способ загрузки файлов DSYMS в Firebase Crashlytics. (1 июня - 2020)
Загрузите архив appDsyms из App Store
1.1 Вход: https://appstoreconnect.apple.com/
1.2 Перейдите в: MyApps -> Выберите свое приложение -> Activity (вверху слева) -> Выберите версию, в которой вы хотите получить сбой -> Включает символы: нажмите ->
Download dSYM
.Откройте терминал, перетащите 3 файла на терминал в следующем порядке:
2.1 перетащите каплю: "загрузить символы", которые можно найти в
/project/Pods/FirebaseCrashlytics/upload-symbols
2.2 написать "
-gsp
"2.3 перетащите каплю: "GoogleService-Info.plist", который можно найти в
/project/GoogleService-Info.plist
2.4 написать "
-p ios
"2.5 перетащите каплю: папка appDsyms, которая обычно находится в папке Download.
/Users/username/Downloads/appDsyms
2.6 Пресса
Enter
В терминале полная команда должна включать -gsp
а также -p ios
, полная команда выглядит так: 2.1 -gsp 2.3 -p ios 2.5
/project/Pods/FirebaseCrashlytics/upload-symbols -gsp /project/GoogleService-Info.plist -p ios /Users/username/Downloads/appDsyms
Все готово, ждите загрузки в терминал!
Пример терминала:
Один из способов получить местоположение файла или папки с помощью перетаскивания на терминал:
У меня была эта проблема некоторое время, и я наконец смог ее решить, подумал, что поделюсь тем, что мне помогло:
Для контекста я работаю над большим приложением, которое использует несколько Cocoapods.
Я нашел то же самое красное знамя на своей странице Firebase Crashlytics и, следуя всем их инструкциям, я все еще видел его.
Я несколько раз безуспешно пробовал решение "архивировать / найти.dSYMs/ загрузить вручную через терминал".
Наконец, я решил загрузить файлы.dSYM из iTunesConnect.
[Ваше приложение] > Деятельность> [Желаемый номер сборки] > Загрузить dSYM
Затем я загрузил эти.dSYMs вручную, и через несколько минут Firebase Crashlytics была счастлива и показала отчеты о сбоях.
ОБНОВИТЬ
Google добавил шикарную функцию загрузки.dSYM на панель инструментов Firebase Crashlytics, больше не загружая из терминала.
После обновления Fabric Crashlytics до Firebase Crashlytics SDK. У меня также была такая же проблема (загрузите 1 отсутствующий dSYM, необходимый для обработки 5 сбоев). Я решил с помощью следующих шагов:
Шаг 1: Откройте Target-> Настройки сборки -> Найдите "формат отладочной информации". Установите для формата отладочной информации значение DWARF с файлом dSYM для всех типов сборки.
Шаг 2-: Откройте раздел "Выполнить сценарий" и введите сценарий.
"${PODS_ROOT}/FirebaseCrashlytics/run"
а затем добавьте входные файлы -
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
Шаг 3-: Добавьте еще один скрипт для загрузки файла dSYM
${PODS_ROOT}/FirebaseCrashlytics/upload-symbols -gsp ${PROJECT_DIR}/Your_path/GoogleService-Info.plist -p ios ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
Если все в порядке, вы все настраиваете, не пропуская ни одного шага, а затем также видите " Загрузить отсутствующие dSYM", чтобы увидеть ошибкусбоев в firebase.
Загрузитефайлы.dSYM изiTunesConnect только из других источников и загрузите их вFirebase.
Google скоро удалит функцию загрузки на панели управления Firebase.
Запустите скрипт прямо из вашего терминала, чтобы загрузить dSYM:
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
После двух дней долгих исследований и попыток множества решений, но у меня никто не работает:(
Но этим решением Firebase Crashlytics была довольна и показывала отчеты о сбоях в течение нескольких минут.
Pods/Fabric/upload-symbols -gsp APP/Resources/GoogleService_Info.plist -p ios /Users/ME/Desktop/APP.app.dSYM
Это я недавно использовал для загрузки dsym в ткань. Я использовал ткань с SDK crashlytics, а не firebase one(которая сейчас находится в стадии бета-тестирования). Просто замените имя приложения на "APP" и свой путь к DSYM вместо "/Users/ME/Desktop/APP.app.dSYM".
Я тоже столкнулся с той же проблемой. В основном мне не хватало простого шага, поэтому скрипт Firebase не мог загрузить файл dSYM.
Шаг за шагом, чтобы решить эту проблему.
- Щелкните файл проекта
- Выбрать цель
- Зайдите в настройки сборки
- Искать "формат отладочной информации"
- Для всей схемы измените настройки на "DWARF с файлом dYSM"
- Теперь снова запустите проект
- Ошибка dYSM панели управления firebase должна исчезнуть...
- использовать пакет
firebase_crashlytics: ^3.3.1
. - в сценарии «Выполнить» добавьте только эту строку
${PODS_ROOT}/FirebaseCrashlytics/run
- во входных файлах добавьте только эту строку
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
- запустите проект, и ошибка должна исчезнуть.
В моем случае я сделал следующие вещи, и это сработало:
Выберите "Запускать сценарий только при установке" в Этапы сборки -> Выполнить сценарий (Shell = ${PODS_ROOT}/Fabric/run)
Создайте приложение
Теперь вы можете найти файл.dsym по пути, /Library/Developer/Xcode/DerivedData/XXX-arctjcalvfslmbakanpyivuuxjmm/Build/Products/Release-iphoneos
Загрузите сжатый файл.dsym в консоль Firebase
Через несколько минут вы можете найти отчеты о сбоях
НОТА:
- Я отключил битовый код при экспорте файла ipa (Adhoc или Appstore)
- Если вам нужен ipa с включенным бит-кодом, скачайте файл dsym из iTunes connect
Найдите и загрузите символы отладки для Crashlytics
- Скопируйте UUID вашего отсутствующего dSYM и запустите
mdfind "com_apple_xcode_dsym_uuids == <UUID>"
в окне терминала. - Приведенная выше команда вернет что-то вроде
.../build/ios/Release-Staging-iphoneos/your.app.dSYM
- Заархивируйте пакет и загрузите его в Crashlytics с помощью панели управления Firebase.
Подождите 10-15 минут, прежде чем сбои начнут появляться на консоли.
Март 2021 г.
Вкладки действий больше нет на itunesconnect, поэтому, чтобы получить файл Dsyms, вам придется
- Зайдите в itunes connect.
- Мои приложения.
- Выберите конкретное приложение.
- Перейдите к testflight.
- выберите сборку, для которой вы хотите создать файл Dsyms.
- Щелкните по созданию метаданных.
- выполните поиск по запросу «включает символы», а затем щелкните, а затем щелкните загрузку.
Затем после загрузки запустите этот код в своем терминале, заменив указанные части на правильный путь к файлу.
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols
-gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
Я создал Medium Story о загрузке dSYM.
Шаг за шагом как закачать с терминала
Средняя ссылка:https://medium.com/@petarlemajic/firebase-dsyms-upload-1cf432c475f7 Я буду рад, если это кому-то поможет. Ура!
Если вы используете динамическую библиотеку, если ваш проект использует какао-бобы или любой другой инструмент, тогда Firebase нужны файлы дубликатов символов, чтобы найти неисправный код в вашей библиотеке. Если вы хотите узнать больше о dSysms, прочитайте это: /questions/28941718/chto-takoe-dsym-i-kak-ego-ispolzovat-ios-sdk
Чтобы найти папку dsysm, вам сначала понадобится файл.ipa, о котором сообщалось о сбое на вашей базе данных. В вашем случае, я полагаю, вы работаете на симуляторе для тестирования. Чтобы получить IPA, выполните следующие действия: Как создать ipa в xcode 6 без учетной записи Apple Developer?
Когда вы достигнете.iPA, щелкните правой кнопкой мыши и выберите Показать содержимое пакета, или перейдите по этой ссылке: iphone: где файл.dSYM находится в отчете о сбое.
Там вы найдете системную папку. Загрузите эту папку в firebase crashalytics.
Надеюсь это поможет!
Я надеюсь, что вы до сих пор решили это. Но для тех, кто использует Firebase/Crashlytics. Я загрузил сборку и получил сбой, но он не отображался в консоли из-за отсутствия dsyms.
Я зашел в itunes и перешел в раздел активности. Затем загрузите dsyms.
После этого я загрузил dsyms в консоль firebase, используя следующую команду:
/Users/ankitjaiswal/Code/oliobox-ios/Pods/FirebaseCrashlytics/upload-symbols
-gsp /Users/ankitjaiswal/Code/oliobox-ios/JacksonArtGallery/GoogleService-Info.plist
-p ios /Users/ankitjaiswal/Downloads/appDsyms.zip
Но таким образом вам всегда нужно вручную загружать и загружать его. Это не рекомендуется, вместо этого вы можете перейти по этой ссылке: https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports-new-sdk
(21 октября - 2020)
У меня было много проблем с загрузкой моих dsyms в firebase, это случилось со мной после того, как я обновился до FirebaseCrashlytics и удалил свой SDK для ткани, до этого у меня не было проблем. Я попробовал все решения безуспешно, но, наконец, понял свою проблему после внесения нескольких изменений в свой код. Кажется, у меня были противоречивые ценности в моем
info.plist
файл и не соответствовали тому, что было в моем
GoogleService-Info.plist
файл. Идентификатор пакета в
GoogleService-Info.plist
должны быть такими же, как схемы URL в
info.plist
. После того, как я внес эти изменения, я загрузил DSYM вручную.
Это пример того, как мои идентификаторы пакетов выглядят в моем проекте после обновления:
Затем я хотел, чтобы это было автоматизировано. Я добавил следующий скрипт в Build Phases > Run Script, и теперь у меня он автоматизирован, как и раньше, когда я использовал Fabric sdk. Просто скопируйте этот код в скрипт запуска, он не требует изменений.
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
PS: Убедитесь, что вы следите за другими сообщениями, убедившись, что у вас также установлен параметр "DWARF с файлом dYSM" в параметрах сборки.
Мое подключение к магазину приложений не показывает ссылку для загрузки dSYM. Итак, я следовал этим инструкциям, и это сработало для меня.
На вопрос уже дан хороший ответ, если вы все еще хотите готовый скрипт, который вы можете скопировать и вставить. Ну вот.
find
$HOME/Library/Developer/Xcode
/DerivedData/<target-name>-*/Build/Products/Develop-iphoneos
-name "*.dSYM" | xargs -I \{\}
$PODS_ROOT/FirebaseCrashlytics/upload-symbols
-gsp ${PROJECT_DIR}/<target-name>/GoogleService-Info.plist
-p ios \{\}
Согласно документам firebase, вместо загрузки
dsym
Вы также можете предоставить встроенный
Info.plist
расположение в поле Входные файлы фазы сборки:
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
После скачивания dsym .zip файла. Вы должны запустить код ниже в Терминале.
/ProjectPath/Pods/Crashlytics/Crashlytics.framework/upload-symbols -gsp /ProjectPathForGoogleServiceFile/GoogleService-Info.plist -p ios /dSYMFilePath/dSYMs.zip
Если команда upload-symbols не найдена, вам следует обновить модули для Firebase.
Если биткод включен = Да
- Перейти в App Store Подключиться
- Перейти к сборке iOS и скачать dSYM
- Откройте терминал
- Запустите команду
/Users/путь-вашего-проекта/ios/Pods/FirebaseCrashlytics/upload-symbols -gsp /Users/путь-вашего-проекта/ios/GoogleService-Info.plist -p ios /Users/ваше-имя-пользователя/Загрузки/appDsyms
- Как только вы получите сообщение об успешном завершении и через некоторое время обновите консоль Firebase, вы увидите отражения.
Примечание. Загрузите все созданные файлы dSYM в Firebase.
Перейдите на developer.apple.com > Activity > iOS Build > Select Version > Download dSYM.
Измените путь к вашему проекту и ваше имя пользователя
Запустите этот код на
Terminal
/Users/your-project-path/ios/Pods/FirebaseCrashlytics/upload-symbols -gsp /Users/your-project-path/ios/GoogleService-Info.plist -p ios /Users/your-username/Downloads/appDsyms. застегивать
Вы увидите сообщение об успешном завершении
Terminal
.Проверьте журналы сбоев на
Firebase Console
через 15-30 минут.
Простые шаги: 1 Перейдите в архив и щелкните правой кнопкой мыши последнюю версию, в которой вы хотите получить отчет о сбое в firebase 2, посмотрите папку dsyms 3 создайте Zip-файл папки dsyms 4, наконец, загрузите этот zip-файл в консоль firebase
Лучшие решения хороши, спасибо их авторам. Возможно, эти советы могут кому-то помочь: если вы хотите протестировать свою конфигурацию путем сбоя приложения, создайте его с помощью Xcode на симуляторе, затем остановите приложение и перезапустите его прямо в симуляторе. Как говорится в документе firebase: начальный экземпляр включает отладчик, который мешает Crashlytics. https://firebase.google.com/docs/crashlytics/test-implementation?platform=ios#test_it_out
Принятый ответ идеален, и я тоже следил за ним. Я просто хотел бы добавить еще один способ загрузки этих dSyms.
Откройте Организатор из меню Xcode> Окно> Организатор
Выберите приложение на левой панели и выберите вкладку "Архивы".
Выберите архив для выпуска приложения, dSyms которого вы хотите загрузить. (Если вы удалили архивы, то вам лучше следовать принятому ответу)
На правой панели нажмите Загрузить символы отладки. Теперь эти символы будут загружены в сам архив. Просто щелкните правой кнопкой мыши архивную версию> Показать в Finder.
Здесь в Finder щелкните правой кнопкой мыши архив> Показать содержимое пакета.
Это откроет содержимое для отображения dSyms.
Теперь вам не нужны все они, некоторые из них будут вашими добавленными фреймворками / библиотеками из подов и другим импортом.
Выбирайте только те, которые имеют буквенно-цифровые обозначения.
Вы можете заархивировать их и загрузить в Firebase.