По умолчанию 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
) убедитесь, что у вас есть следующие настройки:
Откройте вкладку «Фазы сборки» , а затем разверните раздел «Выполнить сценарий» .
В разделе «Входные файлы» убедитесь, что у вас есть пути к расположению следующих файлов:
${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 для каждой сборки:
Откройте свой проект в Xcode, а затем выберите файл проекта в Xcode Navigator.
Выберите основную цель сборки.
Откройте вкладку «Настройки сборки» целевого объекта и нажмите «Все» .
Поиск
debug information format
.Установите формат отладочной информации 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 откройте окно Организатора и выберите свое приложение из списка. Xcode отображает список архивов вашего проекта.
Удерживая клавишу Control, щелкните архив, чтобы просмотреть его в Finder. Удерживая клавишу Control, щелкните его еще раз, а затем нажмите «Показать содержимое пакета» .
Внутри
.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
.
По умолчанию 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
) убедитесь, что у вас есть следующие настройки:
Откройте вкладку «Фазы сборки» , а затем разверните раздел «Выполнить сценарий» .
В разделе «Входные файлы» убедитесь, что у вас есть пути к расположению следующих файлов:
${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 для каждой сборки:
Откройте свой проект в XCode, а затем выберите файл проекта в Navigator Xcode.
Выберите свою основную цель сборки.
Откройте вкладку «Настройки сборки цели», а затем нажмите все .
Поиск
debug information format
.Установите формат информации отладки в карлинг с помощью DSYM -файла для всех ваших типов сборки.
Восстановите ваше приложение.
Ваши отчеты о сбоях теперь должны появляться на панели Crashlytics . Если проблема сохраняется или вы сталкиваетесь с другими ошибками, попробуйте найти свои DSYMS и загрузить их в Crashlytics вручную .
Найдите свои DSYMS на местной машине
Запустите следующую команду, чтобы отобразить все ваши DSYMS 'Uuids на вашей машине и поиск пропущенного DSYM:
mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done
Как только вы найдете DSYM, загрузите его вручную в Crashlytics . Если команда mdfind
не возвращает каких -либо результатов, вы можете посмотреть в каталоге Products
, где живет ваш .app
(по умолчанию, каталог Products
находится в Derived Data
). Если ваше приложение будет выпущено на производство, вы также можете найти его DSYM в каталоге .xcarchive
на диске:
В XCode откройте окно организатора , а затем выберите ваше приложение из списка. Xcode отображает список архивов для вашего проекта.
Управляйте, щелкните архив, чтобы просмотреть его в Finder. Управляйте, щелкните его еще раз, а затем нажмите «Показать содержимое пакета» .
Внутри
.xcarchive
находится каталог DSYMS, который содержит DSYMS, генерируемые как часть процесса архивирования Xcode.
Загрузите свои DSYMS
Crashlytics поддерживает несколько способов загрузки ваших файлов DSYMS, либо автоматически , либо вручную .
(Рекомендуется) автоматически обрабатывать ваши DSYMS и загрузить файлы
Когда вы первоначально настроили Crashlytics , вы, скорее всего, настроили это автоматическое поведение загрузки для вашего приложения. Однако, если автоматические загрузки не сняты, убедитесь, что ваша конфигурация верна .
Вручную загружать свои файлы dsym
Если автоматические загрузки не сняты, вы можете вручную загрузить свои файлы DSYM, используя любой из следующих вариантов.
Вариант 1 : Используйте параметр «Перетащиться» на основе консоли, чтобы загрузить zip-файл, содержащий ваши файлы DSYM (перейдите на консоль Firebase > Crashlytics > DSYMS вкладка).
Вариант 2 : Используйте скрипт
upload-symbols
, который вы можете вызвать из любого места в процессе сборки, чтобы вручную загрузить свои файлы DSYM. Чтобы запустить скриптupload-symbols
, используйте любой из следующих вариантов:Вариант A : Включите следующую строку в процесс сборки:
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
.
По умолчанию Firebase Crashlytics автоматически обрабатывает файлы вашего символа отладки (DSYM), чтобы дать вам отчеты о сбоях деобсфусцины и читаемые на человеке. Обычно вы настраиваете это поведение во время начальной настройки Crashlytics в вашем приложении, в частности , добавив сценарий Run , который автоматически загружает файлы DSYM на этапе сборки вашего приложения.
К сожалению, есть несколько случаев, которые могут привести к выгрузке ваших автоматических файлов DSYM. Это руководство предоставляет некоторые способы устранения неполадок, когда Crashlytics не может найти файлы DSYM вашего приложения.
Убедитесь, что XCode может автоматически обрабатывать DSYMS и загружать файлы
При настройке Crashlytics в вашем приложении вы настроили сценарий запуска для автоматического обработки DSYMS и загрузки файлов.
Убедитесь, что ваша конфигурация для сценария Crashlytics Run является актуальной с новыми требованиями, которые начались с Xcode 15. Если ваша конфигурация не соответствует актуальной информации, вы можете получить следующую ошибку:
error: Info.plist Error Unable to process Info.plist at path ...
В частности, Xcode 15 и позже требует, чтобы вы предоставили более полный набор местоположений файлов. Для вашего сценария Crashlytics запустить ( firebase-ios-sdk/Crashlytics/run
), убедитесь, что у вас есть следующая установка:
Нажмите на вкладку «Фазы сборки» , а затем разверните раздел сценария запуска .
В разделе «Входные файлы убедитесь», что у вас есть пути для местоположения следующих файлов:
${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 DSYMS
Чаще всего файлы DSYM отсутствуют, потому что Xcode просто не производит их. Когда загрузка сбои, Crashlytics отображает оповещение «пропавшего DSYM» в консоли Firebase . Если вы получите это предупреждение, сначала проверьте, что XCode производит правильный DSYM для каждой сборки:
Откройте свой проект в XCode, а затем выберите файл проекта в Navigator Xcode.
Выберите свою основную цель сборки.
Откройте вкладку «Настройки сборки цели», а затем нажмите все .
Поиск
debug information format
.Установите формат информации отладки в карлинг с помощью DSYM -файла для всех ваших типов сборки.
Восстановите ваше приложение.
Ваши отчеты о сбоях теперь должны появляться на панели Crashlytics . Если проблема сохраняется или вы сталкиваетесь с другими ошибками, попробуйте найти свои DSYMS и загрузить их в Crashlytics вручную .
Найдите свои DSYMS на местной машине
Запустите следующую команду, чтобы отобразить все ваши DSYMS 'Uuids на вашей машине и поиск пропущенного DSYM:
mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done
Как только вы найдете DSYM, загрузите его вручную в Crashlytics . Если команда mdfind
не возвращает каких -либо результатов, вы можете посмотреть в каталоге Products
, где живет ваш .app
(по умолчанию, каталог Products
находится в Derived Data
). Если ваше приложение будет выпущено на производство, вы также можете найти его DSYM в каталоге .xcarchive
на диске:
В XCode откройте окно организатора , а затем выберите ваше приложение из списка. Xcode отображает список архивов для вашего проекта.
Управляйте, щелкните архив, чтобы просмотреть его в Finder. Управляйте, щелкните его еще раз, а затем нажмите «Показать содержимое пакета» .
Внутри
.xcarchive
находится каталог DSYMS, который содержит DSYMS, генерируемые как часть процесса архивирования Xcode.
Загрузите свои DSYMS
Crashlytics поддерживает несколько способов загрузки ваших файлов DSYMS, либо автоматически , либо вручную .
(Рекомендуется) автоматически обрабатывать ваши DSYMS и загрузить файлы
Когда вы первоначально настроили Crashlytics , вы, скорее всего, настроили это автоматическое поведение загрузки для вашего приложения. Однако, если автоматические загрузки не сняты, убедитесь, что ваша конфигурация верна .
Вручную загружать свои файлы dsym
Если автоматические загрузки не сняты, вы можете вручную загрузить свои файлы DSYM, используя любой из следующих вариантов.
Вариант 1 : Используйте параметр «Перетащиться» на основе консоли, чтобы загрузить zip-файл, содержащий ваши файлы DSYM (перейдите на консоль Firebase > Crashlytics > DSYMS вкладка).
Вариант 2 : Используйте скрипт
upload-symbols
, который вы можете вызвать из любого места в процессе сборки, чтобы вручную загрузить свои файлы DSYM. Чтобы запустить скриптupload-symbols
, используйте любой из следующих вариантов:Вариант A : Включите следующую строку в процесс сборки:
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
.