Загрузка файлов символов
На моей странице 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, и он работает!