iOS и FirebaseCrashlytics - PullRequest
       8

iOS и FirebaseCrashlytics

6 голосов
/ 23 марта 2020

Я пытаюсь следовать инструкциям на Документах Firebase , чтобы загрузить недостающие требуемые dSYM. Однако я застрял на запуске сценария загрузки.

В моих фазах сборки у меня есть

"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols -gsp${SRCROOT}/GoogleService-Info.plist -p ios ${SRCROOT}/appDsyms"

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

строка 4: / path / to / Pods / FirebaseCrashlytics / upload-символы -gsp / path / to / GoogleService-Info.plist -p ios / path / to / appDsyms: Нет такого файла или каталога

Команда PhaseScriptExecution завершилась с ненулевым кодом выхода

При попытке запустить скрипт из терминала я получаю сообщение об ошибке:

Нет Google App ID или предоставленный файл Служб Google

Я подтвердил, что у меня есть файл Служб Google и могу запустить мой проект, используя другие службы Firebase, которые полагаются на него. Раньше я мог загружать файлы Dysm непосредственно в консоль Firebase, но это меняется 1 марта.

Должна ли эта команда запускаться как сценарий XCode или как команда из терминала? И, что более важно, кто-нибудь понимает, как решить эту проблему?

Ответы [ 6 ]

4 голосов
/ 24 марта 2020

"$ {PODS_ROOT} / FirebaseCrashlytics / upload-символы" -gsp "$ {PROJECT_DIR} / extra_folder / GoogleService-Info.plist" -p ios "$ {DWARF_DSYM_FOLDER_PATH} / $ {DWARF_DSYM_FILE_NAME} "

Я заменил свой GoogleService-Info.plist в дополнительной папке и внес изменения в каталог в сценарии оболочки. Вероятно, вы должны сделать то же самое

Для команды терминала вам лучше перетащить необходимый файл в терминал, а затем скопировать выбранный путь

/ path_to_pods / FirebaseCrashlytics / upload-символы -gsp / path_to_google_service / GoogleService-Info.plist -p iOS / path_to_dSYMs

3 голосов
/ 05 апреля 2020

После того, как мы решили эту проблему, мы наконец решили ее следующим образом:

используйте эту команду в терминале: /path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs

Важно, чтобы вместо /path/to/pods/directory вы вводили путь к вашей папке pods в папке приложения, и вместо /path/to вы должны ввести путь к GoogleService-Info.plist, который также находится в папке вашего проекта. И последнее: вместо /path/to/dSYMs вы должны ввести путь к вашему архиву в формате .xcarchive.

Чтобы найти путь .xcarchive, вы должны сначала заархивировать свое приложение, затем go Организатору XCode и выберите свою сборку, затем щелкните ее правой кнопкой мыши и выберите «Показать в поиске», затем щелкните правой кнопкой мыши на файле .xcarchive и выберите «Показать содержимое пакета». Вот и все, вы можете скопировать этот путь и вставить его вместо /path/to/dSYMs, а затем нажать клавишу ввода, чтобы начать загрузку в аварийные файлы Firebase.

Чтобы получить дополнительную информацию, перейдите по этой ссылке: Документы Firebase

1 голос
/ 14 апреля 2020

При реализации FirebaseCrashlytics (в настоящее время находится в бета-версии) для Crashlytics

Добавить новый сценарий выполнения из фаз сборки и добавить следующие

"$ {PODS_ROOT} / FirebaseCrashlytics / run"

В разделы «Входные файлы» добавить 1. $ {DWARF_DSYM_FOLDER_PATH} / $ {DWARF_DSYM_FILE_NAME} / Содержание / Ресурсы / DWARF / $ {TARGET_NAME} 2. $ (SR CROOT) / путь к / GoogleService-Info.plist

Если вы по-прежнему получите dSYM пропущенную ошибку, затем попробуйте запустить из терминала

/ path / to / pods / FirebaseCrashlytics / upload-символы -gsp /path/to/GoogleService-Info.plist -p ios / path / to / dSYMs

Для путь / к Перетаскивание FirebaseCrashlytics и GoogleService-Info.plist из фактического местоположения Для пути dSYMs будет $ {DWARF_DSYM_FOLDER_PATH} / $ {DWARF_DSYM_FILE_NAME} * 101 * * 1015 Чтобы получить это, нажмите на команду с вашим проектом .xcodeproj и целью «xcodebuild -project YourProject.xcodeproj -target YourTarget -showBuildSettings» и замените ваш указанный c путь

Пожалуйста, не выполняйте следующие указания при реализации Crashlytics 1. Запустите приложение в режиме выпуска 2. Во время тестирования отключите устройство от Mac 3. Установите правильный GoogleService-Info.plist, если вы переименуете его, убедитесь, что вы установили правильное имя файла всякий раз, когда требуется uired.

1 голос
/ 24 марта 2020

Ваш путь к Службам Google, похоже, отключен. Вот пример того, как выглядит моя фаза сборки, которая может успешно загружать dSYM. Я предлагаю следовать этим инструкциям еще раз https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports-new-sdk?platform=ios&authuser=0.

find / Users / okodysh / Библиотека / Разработчик / Xcode / DerivedData / myApp-ftqksfkpdvisbtaozpqzzjiizpfk / Build / Products / Debug-iphonesimulator - имя "myApp.app.dSYM" | xargs -I {} $ PODS_ROOT / FirebaseCrashlytics / upload-символы -gsp /Users/okodysh/Desktop/iOSApps/myApp/myApp/GoogleService-Info.plist -p ios {}

0 голосов
/ 23 апреля 2020

2020 Решение FirebaseCrashlytics

У вас есть два решения:

1) Из командной строки

Go в папку вашего проекта и запустите:

./Pods/FirebaseCrashlytics/upload-symbols -gsp GoogleService-Info.plist -p ios <path_to_your_dsyms_zip>

Вы можете получить свой DSYM в Xcode Organizer> щелкните правой кнопкой мыши по архиву> Показать в Finder -> Показать содержимое -> go, чтобы папку dsymm и сожмите ее

2) Из фаз сборки Xcode

Как описано здесь (Firebase do c) , вы можете добавить Этап запуска сценария в XCode с таким содержанием:

"${PODS_ROOT}/FirebaseCrashlytics/run"

Вы также должны добавить эти два входных файла в сценарий запуска:

${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

и

$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

0 голосов
/ 19 апреля 2020

Наконец, я понял это и написал сценарий shell, чтобы справиться со всем этим для меня

Не стесняйтесь использовать его: https://github.com/cs4alhaider/firebase-upload-symbols

...