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

Выберите платформу: iOS+ Android Flutter Unity


По умолчанию 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)
    Если в настройках сборки вашего проекта указаны ENABLE_USER_SCRIPT_SANDBOXING=YES и ENABLE_DEBUG_DYLIB=YES , то добавьте следующее:
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

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

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

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

  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 поддерживает несколько способов загрузки файлов dSYM: автоматически или вручную .

(Рекомендуется) Автоматически обрабатывайте ваши 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 \{\}
    • Вариант B : Запустите скрипт непосредственно из терминала:

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

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