Я работаю над интеграцией Firebase Crashlytics (а также аналитики) в приложение моей команды.По разным причинам мы вручную настраиваем объект FIROptions
и вызываем -[FIROptions initWithGoogleAppId:GCMSenderID:]
, настраиваем нужные нам свойства и затем вызываем -[FIRApp configureWithName:options:]
.Это прекрасно работает, и я вижу, как работает аналитика, и сбои загружаются на нашу панель инструментов Crashlytics
Однако я не могу получить фазу сборки для загрузки сгенерированных файлов .dSYM
для успешной работы.Предлагаемый скрипт должен добавить это в качестве последнего шага в процессе сборки:
"${PODS_ROOT}/Fabric/run"
Эта фаза также должна быть передана Info.plist
в качестве входного файла.Тем не менее, когда я удаляю GoogleService-Info.plist
из нашего пакета, сборка завершается с этой ошибкой: Could not get GMP_APP_ID in Google Services file from build environment
Это имеет смысл для меня, потому что он все еще ищет GoogleService-Info.plist
, который я удалил.Я написал свой собственный скрипт Python, чтобы попытаться сгенерировать временный файл .plist из наших данных, который в настоящее время выглядит следующим образом:
import subprocess
import tempfile
import plistlib
import pathlib
firebase_app_id: str = "<# OUR FIREBASE APP ID HERE #>"
with tempfile.TemporaryDirectory() as temp_folder, open(pathlib.Path(temp_folder) / "GoogleService-Info.plist", "wb") as temp_plist:
plistlib.dump({"GOOGLE_APP_ID": firebase_app_id}, temp_plist)
subprocess.run([f"{os.environ['PODS_ROOT']}/Fabric/upload-symbols", "--google-service-plist", temp_plist.name, "--build-phase", "--debug"], check=True)
Запуск этого скрипта на этапе сборки приводит к следующей ошибке: Unable to read GoogleService-Info.plist at path /var/folders/4g/_p4pgc5d485gtcn_3dtys4y00000gn/T/tmp7m7r_0zj/GoogleService-Info.plist
Я также пытался сгенерировать нормальный NamedTemporaryFile
, но это приводит к той же проблеме.Если не запустить скрипт в режиме фазы сборки и вручную передать файлы платформы и символов, то я получу первую ошибку о GMP_APP_ID
.Как сделать фазу сборки для автоматической загрузки наших отладочных символов в Crashlytics, не добавляя GoogleService-Info.plist
в наш проект?