Загрузка файлов символов

На моей странице Firebase Crash Reporting я не могу найти полную информацию о сбоях (например, количество строк, файл и т.д.). Я думал, что это может быть потому, что он говорит

Загрузите файл символов, чтобы символизировать будущие следы стека для UUID - - - - ***

сообщив мне

Используя командную строку, перейдите в папку проекта Xcode и запустите следующее:./Pods/FirebaseCrash/batch-upload - - - - ***

К сожалению, когда я пытаюсь выполнить эту команду в моем проекте Xcode, я получаю следующее сообщение:

- - - - ***: предупреждение: нет исполняемого файла или пакета Готово.

и ничего не меняется в firebase. Возможно, это связано с тем, что биткод включен? Как я могу решить эту проблему?

P.S.: Я заменил свой UUID на - - - - *** по соображениям безопасности.

Ответ 1

Этот ответ: если вы не используете CocoaPods.

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

Есть 5 файлов, изображенных ниже: Файловые файлы FirebaseCrash

Вам понадобятся batch-upload, dump_syms, upload-sym, upload-sym-util.bash и upload-sym.sh. Вы можете получить эти файлы из файлов FirebaseCrash Pod.

Если вы скопируете их в каталог проекта и замените "${PODS_ROOT}"/FirebaseCrash/ на каталог, указывающий на эти файлы, он должен работать.

Примечание. У меня все еще есть сложности с этим решением, если я использую сервер сборки, такой как Jenkins. Еще предстоит проделать определенную работу.


Я обнаружил, что это было необходимо для моих приложений, которые не используют CocoaPods. Хотя это может не иметь прямого отношения к вашему собственному использованию, я считаю, что, по крайней мере, я должен включить его для кого-то другого, пытающегося найти ответ.

Ответ 2

В настоящее время у нас есть некоторые проблемы с сторонними библиотеками (динамическими фреймворками), поэтому, если вы используете общую библиотеку, все становится сложно. Следуйте приведенным ниже инструкциям, но замените путь к исполняемым приложениям на путь к общей библиотеке.

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

  • Убедитесь, что UUID верен для исполняемого файла:

    dwarfdump --uuid /path/to/your/build/area/MyApp.app/MyApp

    Если ни один из UUID не совпадает с отсутствующим, тогда игра закончится. Сожалею. Вы можете попытаться восстановить исполняемый файл из Time Machine, Carbonite или что-то еще, но об этом.

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

    mdfind com_apple_xcode_dsym_uuids=UUID

    Вы не увидите ответа.

  • Восстановите пакет dSYM:

    dsymutil -o=upload.dSYM /path/to/your/build/area/MyApp.app/MyApp
  • Убедитесь, что зарегистрирован пакет dSYM:

    mdfind com_apple_xcode_dsym_uuids=UUID

    Вы должны получить один ответ назад: созданный upload.dSYM.

    Если вы его не видите, дайте ему несколько секунд и повторите попытку.

  • Запустите batch-upload UUID снова.

  • Если он все еще не работает, вы можете получить частичные результаты, обработав сам исполняемый файл. Запустите batch-upload /path/to/your/build/area/MyApp.app/MyApp, чтобы получить частичную символику.

Ответ 3

В моем случае (БЕЗ КОКУПАПОВ):

1) Импортировать все файлы из каталога "Crash"

введите описание изображения здесь



2) Добавьте script в закладку "Build Phases" следующим образом:

# Replace this with the GOOGLE_APP_ID from your GoogleService-Info.plist file
GOOGLE_APP_ID=1:xxxxxxxxxxxx:ios:xxxxxxxxxxxx

# Replace the /Path/To/ServiceAccount.json with the path to the key you just downloaded
"${SRCROOT}"/upload-sym "${SRCROOT}/*NameOfTargetDirectory*/ServiceAccount.json"



Вам нужно изменить "NameOfTargetDirectory" в script, и он работает!