Google I/O 2023 での Firebase の最新情報をご覧ください。詳細

Crashlytics ダッシュボードで読み取り可能なクラッシュ レポートを取得する

デフォルトでは、Firebase Crashlytics はデバッグ シンボル(dSYM)ファイルを自動的に処理して、難読化解除された(人が読める形式の)クラッシュ レポートを生成します。この動作は、Crashlytics を初期化する実行スクリプトをアプリのビルドフェーズに追加するときに設定されます。

わずかながらも、dSYM のアップロードが失敗する状況がいくつかあります。通常、その原因はアプリ内のビットコードや固有のプロジェクト構成です。このガイドでは、Crashlytics がアプリの dSYM を見つけられない場合のトラブルシューティング方法をいくつか説明します。

Xcode が dSYM を生成しているかどうかを確認する

多くの場合、dSYM ファイルが欠落する理由は Xcode がファイルを生成していないことにあります。アップロードが失敗すると、Crashlytics は Firebase コンソールに「不足している dSYM」というアラートを表示します。このアラートが表示された場合は、まず、Xcode がすべてのビルドに対して正しい dSYM を生成していることを確認します。

  1. Xcode でプロジェクトを開き、ナビゲータでプロジェクト ファイルを選択します。

  2. メインのビルド ターゲットを選択します。

  3. ターゲットの [Build Settings] タブを開き、[All] をクリックします。

  4. 「debug information format」を検索します。

  5. すべてのビルドタイプについて、[Debug Information Format] を [DWARF with dSYM File] に設定します。

  6. アプリを再ビルドします。

これで、Firebase コンソールにクラッシュ レポートが表示されます。問題が解決しない場合や他のエラーが発生した場合は、dSYM を見つけて手動で Crashlytics にアップロードしてください。

dSYM を見つける

ビットコードの構成やコンソールの接続が原因で、Crashlytics がアプリの dSYM を見つけられない場合があります。この場合のトラブルシューティングには、次の 2 つの方法があります。

dSYM をアップロードする

dSYM を手動でアップロードするには、コンソールベースの「ドラッグ&ドロップ」オプションを使用して、dSYM ファイルが含まれている zip アーカイブをアップロードします(Firebase コンソール > [Crashlytics] > [dSYM] タブの順に選択して移動します)。

Crashlytics には、バックアップとして upload-symbols スクリプトも組み込まれています。このスクリプトをビルドプロセスの任意の時点で呼び出すことで、dSYM ファイルを手動でアップロードできます。このスクリプトはアップロード プロセスに関するより詳細な情報と、より包括的なエラー メッセージを表示します(使用方法に関する注意事項と詳細な説明を確認するには、パラメータを指定せずに upload-symbols を実行します)。

ビットコードの dSYM をアップロードするときに、次のコマンドを実行して zip アーカイブ内の Icon ファイルをすべて削除したほうがいい場合があります。

unzip appDsyms.zip
cd appDsyms rm -rf $(find . | grep Icon)
# Enumerate all the dSYMs
upload-symbols ... $(ls)

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