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

デフォルトでは、Firebase Crashlytics は Flutter プロジェクトを自動的に計測可能にして、必要なシンボル ファイルをアップロードします。これにより、クラッシュ レポートの難読化が解除され、人が読めるようになります。

ただし、プロジェクトの構成が完了しない場合もあります。このガイドでは、自動化の内容の概要と、プロジェクト設定をデバッグするための最初のステップについて説明します。

Apple プラットフォーム

dSYM ファイルのアップロードの構成を確認する

Crashlytics Flutter プラグインを追加して flutterfire configure コマンドを実行すると、必要な dSYM シンボル ファイルを見つけて Crashlytics にアップロードする実行スクリプトを、プロジェクトの Xcode ワークスペースに追加しようとします。これらのファイルがないと、Crashlytics ダッシュボードに「dSYM の不足」に関するアラートが表示され、不足しているファイルがアップロードされるまで、バックエンドで例外が保持されます。

この問題が発生した場合は、まず実行スクリプトがインストールされていることを確認します。

  1. プロジェクトの iOS ディレクトリ(FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace)で Xcode ワークスペース ファイルを見つけて開きます。

  2. [firebase_crashlytics] Crashlytics Upload Symbols という実行スクリプトがランナー ターゲットのビルドフェーズに追加されているかどうかを確認します。

    実行スクリプトが存在しないか、実行スクリプトが存在するかに応じて、以下の該当するセクションをご覧ください。

Flutter と Crashlytics のバージョン構成を確認する(--split-debug-info フラグを使用している場合)

Flutter プロジェクトで --split-debug-info フラグ(および必要に応じて --obfuscate フラグ)を使用する場合は、アプリで読み取り可能なスタック トレースを表示するために追加の手順が必要になります。

プロジェクトで推奨されるバージョン構成(Flutter 3.12.0 以降、Crashlytics Flutter プラグイン 3.3.4 以降)を使用していることを確認して、プロジェクトで Flutter シンボル(dSYM ファイル)を自動的に生成して Crashlytics にアップロードできるようにします。

Android

依存関係構成を確認する

flutterfire configure コマンドは、プロジェクトの Gradle ビルドファイルに対して必要な依存関係の追加を試みます。これらの依存関係がないと、難読化が有効になっている場合、Firebase コンソールのクラッシュ レポートが難読化される場合があります。

プロジェクト レベルの build.gradle とアプリレベルの build.gradle に次の行があることを確認します。

  • プロジェクト レベルのビルドファイル(android/build.gradle)で、次の行を確認します。

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
    
  • アプリレベルのビルドファイル(android/app/build.gradle)で、次の行を確認します。

    // ... other imports
    
    android {
    // ... your android config
    }
    
    dependencies {
    // ... your dependencies
    }
    
    // This section must appear at the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    apply plugin: 'com.google.firebase.crashlytics'
    

CLI を使用して Flutter シンボルをアップロードすることを確認する(--split-debug-info フラグを使用している場合)

Flutter プロジェクトで --split-debug-info フラグ(および必要に応じて --obfuscate フラグ)を使用する場合は、アプリで読み取り可能なスタック トレースを表示するために追加の手順が必要になります。

Firebase CLI(v.11.9.0 以降)を使用して、Flutter デバッグ シンボルをアップロードします。難読化されたコードビルドのクラッシュを報告する前に、デバッグ シンボルをアップロードする必要があります。

Flutter プロジェクトのルート ディレクトリから、次のコマンドを実行します。

firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • FIREBASE_APP_ID: Firebase Android アプリ ID(パッケージ名ではありません)
    Firebase Android アプリ ID の例: 1:567383003300:android:17104a2ced0c9b9b

  • PATH/TO/symbols: アプリケーションのビルド時に --split-debug-info フラグに渡すのと同じディレクトリ

問題が解決しない場合は、難読化されたレポートのトラブルシューティングに関する Android 固有のガイドをご覧ください。