Загрузка символов отладки в Crashlytics без GoogleService-Info.plist - PullRequest
0 голосов
/ 19 июня 2019

Я работаю над интеграцией 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 в наш проект?

...