Загрузите dSYMS в Firebase через Fastlane - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь загрузить файлы dSYM в Firebase через Fastlane. У меня есть полоса, которая выглядит следующим образом:

desc "Fetch and upload dSYM files to Firebase Crashlytics"
lane :refresh_dsyms_firebase do |options|
  download_dsyms(version: options[:version])        
  upload_symbols_to_crashlytics(gsp_path: "./App/GoogleService-Info.plist") 
  clean_build_artifacts
end

Я подтвердил, что это правильный путь к файлу plist, но когда я сначала пытаюсь запустить дорожку, я вижу следующее:

[17:22:47]: invalid byte sequence in UTF-8
[17:22:47]: invalid byte sequence in UTF-8
[17:22:47]: invalid byte sequence in UTF-8

, а затем один из них для каждого найденного файла dSYM:

[17:22:48]: Uploading '70DBE65E-227E-3754-89F2-EEFA6B8EEC2F.dSYM'...
[17:22:48]: Shell command exited with exit status  instead of 0.

Я пытаюсь точно определить, чего мне не хватает в этом процессе. У кого-нибудь есть идеи? Я довольно новичок в Fastlane, поэтому определенно предположил, что я мог упустить что-то простое. (Хотя это пустое состояние выхода немного странно).

fastlane 2.107.0

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Это может быть не вариант для большинства, но я просто решил исправить это, начав сначала. Это может быть не совсем очевидно, если вы пришли из Fabric, но я подумал, что просто сорву помощь группы. Моей первоначальной настройкой было использование Fabric (Ответы) / Firebase Crashlytics, который представляет собой путь миграции Fabric-> Firebase, хотя тонкий, конфигурация между ними немного отличается и вызывает проблемы с upload_symbols_to_crashlytics

  1. Удалить поддержку ответов Fabric или заменить на https://firebase.google.com/docs/analytics/ios/start
  2. Удалить объявление Fabric в Info.plist
  3. Измените существующий сценарий выполнения в BuildPhases: замените существующий сценарий выполнения на "${PODS_ROOT}/Fabric/run" и добавьте $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) к входным файлам
  4. В вас AppDelegate удалить Fabric.with([Crashlytics.self]), и вы также можете убить import Fabric, поскольку теперь это покрыто Firebase
  5. Отключите матрицу, повторно включите аварийную систему Firebase и выберите новую интеграцию.
desc "Upload any dsyms in the current directory to crashlytics"
lane :upload_dsyms do |options|
  download_dsyms(version: version_number, build_number: build_number)
  upload_symbols_to_crashlytics(gsp_path: "./App/Resources/GoogleService-Info.plist")
  clean_build_artifacts
end
0 голосов
/ 20 декабря 2018

кто заинтересован в этом, может следить за темой здесь: https://github.com/fastlane/fastlane/issues/13096

TL; DR: когда вы звоните

upload_symbols_to_crashlytics(gsp_path: "./App/GoogleService-Info.plist")

Он вызовет двоичный файл из установленного модуля Fabric с именем upload_symbols и будет выглядеть примерно так:

./Pods/Fabric/upload-symbols -a db4d085462b3cd8e3ac3b50f118e273f077497b0 -gsp ./App/GoogleService-Info.plist -p ios /private/var/folders/x1/x6nqt4997t38zr9x7zwz72kh0000gn/T/d30181115-8238-1fr38bo/D4CE43B9-9350-3FEE-9E71-9E31T39080CD.dSYM

Вы заметите, что он вызывает его с помощью ключа API Fabric и пути GoogleService-Info.plist. Я не знаю почему, но это заставит это не загружать. Вам придется временно удалить информацию о конфигурации матрицы из файла Info.plist, прежде чем запускать полосу fastlane. (не забудьте повторно добавить конфигурацию ткани).

...