Problem(s)
- 最新のXcodeではビットコードが非推奨になりビットコードをアップロードしなくなったアプリはApp StoreからdSYMファイルをダウンロードできなくなりました。CIでfastlaneの
download_dsyms
を使っている場合や手動でdSYMがダウンロードできなくなるとFirebase Consoleで「dSYMが不足している」とエラーが出てクラッシュログが見にくくなります。 - Firebase SDKに内包されているスクリプト
run
を使ってdSYMを直接Firebase Consoleにアップロードする方法がありますがこの方法には現時点でバグがありdSYMを探し出せない場合があります。
実際に多くのプロジェクトでdSYMの運用が一時的にXcodeから手動アップロードになっているのではないでしょうか?
Solution
以下のURLが参考になります。
許可をもらいましたので以下かいつまんで翻訳したものを紹介します。
- Run Scriptに以下のスクリプトを入力
# Swift Package Manager を使っている場合 以下:
SPM_ROOT=$(dirname $(dirname $BUILD_ROOT))/SourcePackages/checkouts
"${SPM_ROOT}/firebase-ios-sdk/Crashlytics/upload-symbols" -gsp /PATH/GoogleService-Info.plist -p ios $TARGET_BUILD_DIR
# CocoaPods を使っている場合 以下:
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp /PATH/GoogleService-Info.plist -p ios $TARGET_BUILD_DIR
PATH = GoogleService-Info.plistのパスを設定してください。プロジェクトごとに異なると思いますが、プロジェクト新規作成時置かれているInfo.plistと同じ場所にある場合は$PROJECT_DIR/$PROJECT_NAME/GoolgeService-Info.plist
になるでしょう。
🍎 上記のスクリプトを修正するとビルド時にdSYMがアップロードされます。dSYMはアップロードしてからそれがFirebase Consoleに反映されるまで時間がかかります。私の場合1時間くらい経ってから反映されました。