最近、Firebase Crashlyticsのすべてのクラッシュレポートが難読化されておらず、関数名や行番号ではなく、コンパイラエラーやメモリの場所(<compiler-generated> - Line 4331771636
、EXC_BREAKPOINT 0x0000000102afd6f4
など)が返されていました。それは、Fabricがシャットダウンされた(2020年5月4日)ためだと気づき、Firebase Crashlyticsへの移行を開始しました。
ポッドファイルを変更してFirebase/Crashlytics
ポッドを追加し、 here にある移行手順に従いました。
XcodeのRun script
の下のBuild Phases
に次のコードを挿入しました。
"${PODS_ROOT}/FirebaseCrashlytics/run"
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
プロジェクトをビルドすると、upload-symbols
から次のエラーが返されます。
Fetching upload-symbols settings...
[31merror: Could not fetch upload-symbols settings: Could not connect to the server.[0m
Command PhaseScriptExecution failed with a nonzero exit code
ターミナルでupload-symbols
スクリプトを手動で実行すると、同じエラーerror: Could not fetch upload-symbols settings: Could not connect to the server.
が発生します
また、FirebaseのCrashlyticsダッシュボードで、以前のすべてのクラッシュデータを失っていて、メッセージError loading your issues
を受け取っていたことにも気付きました。
エラーを修正して、Crashlyticsを以前のように機能させるにはどうすればよいですか?
解決策は、fatalError()
を使用してアプリを強制的にクラッシュさせることでした。これが、Firebase Crashlyticsバックエンドでの新しいSDKの登録を完了するために必要であることは明らかではありません。
これを実行すると、以前のようにすべての過去のクラッシュデータが利用可能になり、upload-symbols
が正常に完了しました。