エラー発生
iOSのプロジェクトにFirebase Crashlyticsを導入したところ、以下のエラーが発生。
Could not get GOOGLE_APP_ID in Google Services file from build environment
GoogleService-Info.plistは正しいパスに置いてあるはず。何故…
原因
公式ドキュメントに書いてありました。
注: 新しいビルドフェーズがプロジェクトの最後のビルドフェーズであることを確認してください。そうでないと、Crashlytics が正しく初期化されません。
対象のプロジェクトではXcodgenでプロジェクトファイルを生成していました。
Xcodegenは必ず最後にCocoaPodsのスクリプトが走るようになっているため、正しく初期化されなかったようです。
(postCompileScripts
よりも更に後に走る)
解決策
CocoaPodsのscript_phaseで、最後のビルドフェーズにスクリプトが走るようにして解決。
Podfile
target 'Project' do
pod 'Firebase/Crashlytics'
script_phase :name=> 'FirebaseCrashlytics',
:script=> '"${PODS_ROOT}/FirebaseCrashlytics/run"',
:input_files=> ['$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)']
end
ビルドフェーズの最後に追加されたことが確認できます。
Build Phases |
---|
![]() |
参考文献
https://qiita.com/yosshi4486/items/73a627c1e3daf8f4f509
Fabricだった頃からあるようです。Xcodegenにスクリプトまとめたいですね…