デフォルトでは、Firebase Crashlytics はデバッグ シンボル(dSYM)ファイルを自動的に処理して、難読化解除された(人が読める形式の)クラッシュ レポートを生成します。この動作は、Crashlytics を初期化する実行スクリプトをアプリのビルドフェーズに追加するときに設定されます。
わずかながらも、dSYM のアップロードが失敗する状況がいくつかあります。通常、その原因はアプリ内のビットコードや固有のプロジェクト構成です。このガイドでは、Crashlytics がアプリの dSYM を見つけられない場合のトラブルシューティング方法をいくつか説明します。
Xcode が dSYM を生成しているかどうかを確認する
多くの場合、dSYM ファイルが欠落する理由は Xcode がファイルを生成していないことにあります。アップロードが失敗すると、Crashlytics は Firebase コンソールに「不足している dSYM」というアラートを表示します。このアラートが表示された場合は、まず、Xcode がすべてのビルドに対して正しい dSYM を生成していることを確認します。
Xcode でプロジェクトを開き、ナビゲータでプロジェクト ファイルを選択します。
メインのビルド ターゲットを選択します。
ターゲットの [Build Settings] タブを開き、[All] をクリックします。
「debug information format」を検索します。
すべてのビルドタイプについて、[Debug Information Format] を [DWARF with dSYM File] に設定します。
アプリを再ビルドします。
これで、Firebase コンソールにクラッシュ レポートが表示されます。問題が解決しない場合や他のエラーが発生した場合は、dSYM を見つけて手動で Crashlytics にアップロードしてください。
dSYM を見つける
ビットコードの構成やコンソールの接続が原因で、Crashlytics がアプリの dSYM を見つけられない場合があります。この場合のトラブルシューティングには、次の 2 つの方法があります。
dSYM をアップロードする
Crashlytics には、バックアップとして upload-symbols
スクリプトも組み込まれています。このスクリプトをビルドプロセスの任意の時点で呼び出すことで、dSYM を手動でアップロードできます。このスクリプトはアップロード プロセスに関するより詳細な情報と、より確実なエラー メッセージを表示します(使用方法に関する注意事項と詳細な説明を確認するには、パラメータを指定せずに upload-symbols
を実行します)。
upload-symbols
スクリプトを実行するには、次のいずれかのオプションを使用します。
ビルドプロセスに次の行を含めます。
find dSYM_directory -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p platform \{\}
ターミナルからスクリプトを直接実行します。
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs