Получайте читаемые отчеты о сбоях на панели инструментов Crashlytics.


По умолчанию Firebase Crashlytics автоматически обрабатывает файлы символов отладки (dSYM), чтобы предоставить вам деобфускированные и удобочитаемые отчеты о сбоях. Обычно вы настраиваете это поведение во время первоначальной настройки Crashlytics в своем приложении, в частности , добавляя сценарий запуска , который автоматически загружает файлы dSYM на этапе сборки вашего приложения.

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

Убедитесь, что Xcode может автоматически обрабатывать dSYM и загружать файлы.

При настройке Crashlytics в вашем приложении вы настроили сценарий запуска для автоматической обработки dSYM и загрузки файлов.

Убедитесь, что ваша конфигурация сценария запуска Crashlytics соответствует новым требованиям, которые появились в Xcode 15. Если ваша конфигурация не обновлена, вы можете получить следующую ошибку:
error: Info.plist Error Unable to process Info.plist at path ... .

В частности, Xcode 15 и более поздние версии требуют предоставления более полного набора расположений файлов. Для вашего сценария запуска Crashlytics ( firebase-ios-sdk/Crashlytics/run ) убедитесь, что у вас есть следующие настройки:

  1. Откройте вкладку «Фазы сборки» , а затем разверните раздел «Выполнить сценарий» .

  2. В разделе «Входные файлы» убедитесь, что у вас есть пути к расположению следующих файлов:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)

Проверьте, создает ли Xcode dSYM

Чаще всего файлы dSYM пропадают, потому что Xcode просто не создает их. При сбое загрузки Crashlytics отображает предупреждение «Отсутствует dSYM» в консоли Firebase . Если вы получили это предупреждение, сначала убедитесь, что Xcode создает правильный dSYM для каждой сборки:

  1. Откройте свой проект в Xcode, а затем выберите файл проекта в Xcode Navigator.

  2. Выберите основную цель сборки.

  3. Откройте вкладку «Настройки сборки» целевого объекта и нажмите «Все» .

  4. Поиск debug information format .

  5. Установите формат отладочной информации DWARF с файлом dSYM для всех типов сборок.

  6. Перестройте свое приложение.

Ваши отчеты о сбоях теперь должны появиться на панели инструментов Crashlytics . Если проблема не устранена или вы столкнулись с другими ошибками, попробуйте найти свои dSYM и загрузить их в Crashlytics вручную .

Найдите свои dSYM на локальном компьютере.

Запустите следующую команду, чтобы отобразить UUID всех ваших dSYM на вашем компьютере и найти недостающий dSYM:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

Найдя dSYM, вручную загрузите его в Crashlytics . Если команда mdfind не возвращает никаких результатов, вы можете поискать в каталоге Products , где находится ваше .app (по умолчанию каталог Products находится в Derived Data ). Если ваше приложение выпущено в производство, вы также можете найти его dSYM в каталоге .xcarchive на диске:

  1. В Xcode откройте окно Организатора и выберите свое приложение из списка. Xcode отображает список архивов вашего проекта.

  2. Удерживая клавишу Control, щелкните архив, чтобы просмотреть его в Finder. Удерживая клавишу Control, щелкните его еще раз, а затем нажмите «Показать содержимое пакета» .

  3. Внутри .xcarchive находится каталог dSYMs, содержащий файлы dSYM, созданные в процессе архивирования Xcode.

Загрузите свои dSYM

Crashlytics поддерживает несколько способов загрузки файлов dSYMs: автоматически или вручную .

(Рекомендуется) Автоматически обрабатывать ваши dSYM и загружать файлы.

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

Загрузите файлы dSYM вручную.

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

  • Вариант 1. Используйте консольную опцию «Перетаскивание», чтобы загрузить zip-файл, содержащий файлы dSYM (перейдите в консоль Firebase > Crashlytics > вкладка dSYMs ).

  • Вариант 2. Используйте сценарий upload-symbols , который вы можете вызвать из любого места процесса сборки, чтобы вручную загрузить файлы dSYM. Чтобы запустить сценарий upload-symbols , используйте любой из следующих вариантов:

    • Вариант А. Включите в процесс сборки следующую строку:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • Вариант Б : Запустите скрипт прямо с вашего терминала:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    Для получения примечаний по использованию и дополнительных инструкций по этому сценарию запустите upload-symbols с параметром --help .