デフォルトでは、Firebase Crashlytics は Flutter プロジェクトを自動的に計測可能にして、必要なシンボル ファイルをアップロードします。これにより、クラッシュ レポートの難読化が解除され、人が読めるようになります。
ただし、プロジェクトの構成が完了しない場合もあります。このガイドでは、自動化の内容の概要と、プロジェクト設定をデバッグするための最初のステップについて説明します。
Apple プラットフォーム
dSYM ファイルのアップロードの構成を確認する
Crashlytics Flutter プラグインを追加して flutterfire configure
コマンドを実行すると、必要な dSYM シンボル ファイルを見つけて Crashlytics にアップロードする実行スクリプトを、プロジェクトの Xcode ワークスペースに追加しようとします。これらのファイルがないと、Crashlytics ダッシュボードに「dSYM の不足」に関するアラートが表示され、不足しているファイルがアップロードされるまで、バックエンドで例外が保持されます。
この問題が発生した場合は、まず実行スクリプトがインストールされていることを確認します。
プロジェクトの iOS ディレクトリ(
FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace
)で Xcode ワークスペース ファイルを見つけて開きます。[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 固有のガイドをご覧ください。