可読化されたクラッシュ レポートを取得する

iOS
android
iOS

Firebase Crashlytics は、デバッグ シンボル(.dSYM)ファイルを自動的に処理して、可読化された(人が読める形式の)クラッシュ レポートを生成します。

残念ながら、dSYM のアップロードが失敗する状況が少数あります。その原因は、一般的にプロジェクト固有の設定、またはアプリに含まれるビットコードです。アップロードが失敗すると、Crashlytics は Firebase コンソールに「Missing dSYM」というアラートを表示し、クラッシュ レポートを正常に表示できないことを通知します。

このアラートが表示された場合、問題の解決を試みるには、Xcode が適切な dSYM ファイルを生成していることを確認してください。適切な dSYM ファイルを生成している場合は、dSYM アップロード スクリプトを手動で実行します。

Xcode がデバッグ シンボル ファイルを生成しているかどうか確認する

たいていの場合、シンボル ファイルが欠落する理由は Xcode がファイルを生成していないことにあります。プロジェクトがビルドごとに dSYM を生成していることを確認する方法は次のとおりです。

  1. Xcode でプロジェクトを開き、ナビゲータでプロジェクト ファイルを選択します。
  2. [Select a project or target] プルダウンでメインのビルド ターゲットを選択します。
  3. ターゲットの [Build Settings] タブを開きます。
  4. タブの上部にある [All] をクリックします。
  5. 「debug information format」を検索します。
  6. [Debug Information Format] を [DWARF with dSYM File] に設定します。

上記の手順が完了したら、アプリを再度ビルドして、Crashlytics が dSYM を検出できることを Firebase コンソールで確認します。

手動でシンボル アップロード スクリプトを実行する

Crashlytics には、バックアップとして upload-symbols も組み込まれています。このスクリプトをビルドプロセスの任意の時点で呼び出すことで、dSYM を手動でアップロードできます。このスクリプトはアップロード プロセスに関するより詳細な情報と、より確実なエラー メッセージを表示します。スクリプトを実行するには、ビルドプロセスに次の行を含めます。

find dSYM_directory -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/Fabric/upload-symbols -gsp /path/to/GoogleService-Info.plist -p platform \{\}

ターミナルからスクリプトを実行することもできます。

/path/to/pods/directory/Fabric/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs

または、Xcode からスクリプト ビルドフェーズを実行します。

"${PODS_ROOT}/Fabric/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
注: 問題が発生した場合は、パラメータを指定せずに upload-symbols を実行して、使用方法に関する注意事項と詳細な説明を確認してください。
android

Crashlytics は ProGuardDexGuard のマッピング ファイルを使用して、アプリのスタック トレースを可読化された(人が読める形式の)コードとして表示します。適切なマッピング ファイルを生成するには、ProGuard または DexGuard を Crashlytics 用に設定します。

  1. Crashlytics が読みやすいクラッシュ レポートを生成するのに必要な情報を保持するため、設定ファイルに次の行を追加します。

    -keepattributes *Annotation*                      // Keep Crashlytics annotations
    -keepattributes SourceFile,LineNumberTable        // Keep file names/line numbers
    -keep public class * extends java.lang.Exception  // Keep custom exceptions (opt)
    
  2. Crashlytics が ProGuard または DexGuard のマッピング ファイルを自動的にアップロードできるようにするため、設定ファイルから次の行を削除します。

    -printmapping mapping.txt
ProGuard でのビルドを高速化するため、Crashlytics を除外します。 構成ファイルに次の行を追加します。
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。