| Выберите платформу: | 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) задайте следующие настройки:
Перейдите на вкладку Build Phases (Этапы сборки) и разверните раздел Run Script (Запуск скрипта).
В разделе Input Files (Входные файлы) укажите пути к следующим файлам:
${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 показывает в консоли Firebase оповещение "Отсутствует dSYM". Если вы получили такое оповещение, сначала проверьте, создает ли Xcode правильный файл dSYM для каждой сборки:
Откройте проект в Xcode и выберите файл проекта в навигаторе Xcode.
Выберите основную цель сборки.
Откройте вкладку Build Settings (Настройки сборки) и нажмите All (Все).
Искать по запросу "
debug information format".Для всех типов сборки задайте для параметра Debug Information Format (Формат отладочной информации) значение DWARF with dSYM File (DWARF с файлом dSYM).
Пересоберите приложение.
Отчеты о сбоях должны появиться на панели управления 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 на диске:
В Xcode откройте окно Organizer (Органайзер) и выберите приложение из списка. Xcode покажет список архивов для вашего проекта.
Чтобы посмотреть архив в Finder, нажмите на него, удерживая клавишу Control. Снова нажмите на него, удерживая клавишу Control, и выберите Показать содержимое пакета.
В каталоге
.xcarchiveесть папка dSYMs, в которой хранятся файлы dSYM, созданные в процессе архивации Xcode.
Загрузите файлы dSYM
Crashlytics поддерживает несколько способов загрузки файлов dSYM: автоматически или вручную.
(Рекомендуется) Автоматически обрабатывать dSYM и загружать файлы
Скорее всего, вы настроили автоматическую загрузку при первоначальной настройке Crashlytics. Если автоматическая загрузка не работает, проверьте правильность конфигурации.
Как загрузить файлы dSYM вручную
Если автоматическая загрузка не работает, вы можете загрузить файлы dSYM вручную одним из следующих способов.
Вариант 1. Перетащите ZIP-архив с файлами dSYM в консоль Firebase. Для этого перейдите в раздел DevOps & Engagement (DevOps и вовлечение) > Crashlytics dashboard (Панель управления Crashlytics) > вкладка dSYMs (Файлы dSYM).
Вариант 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.