| プラットフォームを選択: | iOS+ Android Android NDK Flutter Unity |
このガイドでは、Flutter アプリで Firebase Crashlytics の使用を開始する方法について説明します。
アプリで Crashlytics Flutter プラグインを設定すると、Firebase コンソールで包括的なクラッシュ レポートを取得できます。
Crashlytics の設定には、コマンドライン ツールと IDE の両方を使用します。設定を完了するには、強制的にテスト例外をスローして、最初のクラッシュ レポートを Firebase に送信する必要があります。
始める前に
まだ行っていない場合は、Flutter プロジェクトで Firebase の構成と初期化を行います。
推奨: パンくずリストのログを自動的に取得して、クラッシュ イベント、非致命的イベント、ANR イベントに至るまでのユーザー操作を把握するには、Firebase プロジェクトで Google Analytics を有効にする必要があります。
既存の Firebase プロジェクトで Google Analytics が有効になっていない場合は、Firebase コンソールで
[] > [プロジェクトの設定] の [統合] タブで Google Analytics を有効にします。新しい Firebase プロジェクトを作成する場合は、プロジェクトの作成ワークフローで Google Analytics を有効にします。
パンくずリストのログは、Crashlytics でサポートされているすべての Android プラットフォームおよび Apple プラットフォーム(watchOS を除く)で利用できます。
ステップ 1: Flutter プロジェクトに Crashlytics を追加する
Flutter プロジェクトのルートから、次のコマンドを実行して Crashlytics の Flutter プラグインをインストールします。
パンくずリスト ログを利用するには、Google Analytics 用の Flutter プラグインもアプリに追加します。Firebase プロジェクトで Google アナリティクスが有効になっていることを確認してください。
flutter pub add firebase_crashlytics && flutter pub add firebase_analyticsFlutter プロジェクトのルート ディレクトリから、次のコマンドを実行します。
flutterfire configureこのコマンドを実行すると、Flutter アプリの Firebase 構成が最新の状態になります。さらに、Android の場合は、必要な Crashlytics Gradle プラグインがアプリに追加されます。
完了したら、Flutter プロジェクトを再ビルドします。
flutter run(省略可)Flutter プロジェクトで
--split-debug-infoフラグ(および必要に応じて--obfuscateフラグ)を使用する場合は、アプリで読み取り可能なスタック トレースを表示するために追加の手順が必要になります。Apple プラットフォーム: プロジェクトで推奨されるバージョン構成(Flutter 3.12.0 以降、Crashlytics Flutter プラグイン 3.3.4 以降)を使用していることを確認して、プロジェクトで Flutter シンボル(dSYM ファイル)を自動的に生成して Crashlytics にアップロードできるようにします。
Android: 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:17104a2ced0c9b9bPATH/TO/symbols: アプリケーションのビルド時に--split-debug-infoフラグに渡すのと同じディレクトリ
ステップ 2: クラッシュ ハンドラを構成��る
FlutterError.onError を FirebaseCrashlytics.instance.recordFlutterFatalError でオーバーライドすると、Flutter フレームワーク内でスローされたすべてのエラーを自動的にキャッチできます。
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// Pass all uncaught "fatal" errors from the framework to Crashlytics
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
runApp(MyApp());
}
Flutter フレームワークで処理されない非同期エラーをキャッチするには、PlatformDispatcher.instance.onError を使用します。
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FlutterError.onError = (errorDetails) {
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
};
// Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
PlatformDispatcher.instance.onError = (error, stack) {
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
return true;
};
runApp(MyApp());
}
他のタイプのエラーの処理方法の例については、クラッシュ レポートをカスタマイズするをご覧ください。
ステップ 3: 強制的にテスト クラッシュを発生させて設定を完了する
Crashlytics の設定を完了し、Firebase コンソールの Crashlytics ダッシュボードで最初のデータを確認します。そのためには、強制的にテスト例外をスローさせる必要があります。
テスト例外を強制的にスローするためのコードをアプリに追加します。
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)を呼び出すエラーハンドラを最上位のZoneに追加している場合は、次のコードを使用してアプリにボタンを追加します。このボタンを押すと、テスト例外がスローされます。TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),アプリをビルドして実行します。
アプリの最初のレポートを送信するために、テスト例外を強制的にスローします。
テスト用のデバイスまたはエミュレータからアプリを開きます。
アプリで、上述のコードを使用して追加したテスト例外のボタンを押します。
Firebase コンソールの Crashlytics ダッシュボードに移動して、テスト クラッシュを確認します。
コンソールを更新し、5 分経過してもテスト クラッシュが表示されない場合は、デバッグ ロギ������有効にして、���プリ�����ラッシュ レポートを送信しているかどうかを確認してください。
これで完了です。Crashlytics がアプリのクラッシュをモニタリングするようになりました。Android では、致命的でないエラーや ANR がモニタリングされます。すべてのレポートと統計情報を参照して調査するには、Crashlytics ダッシュボードにアクセスします。
次のステップ
クラッシュ レポートの設定をカスタマイズするために、オプトイン レポート、ログ、キー、致命的でないエラーの追跡を追加します。
Android アプリのクラッシュ レポートを Crashlytics ダッシュボードから直接 Google Play トラックでフィルタリングできるように、Google Play と統合する。これにより、ダッシュボードで特定のビルドに注目できます。
Android Studio の [App Quality Insights] ウィンドウ(Electric Eel 2022.1.1 以降で利用可能)で、コードと一緒にスタック トレースとクラッシュ統計情報を表示する。
データを BigQuery または Cloud Logging にエクスポートして、データのクエリ、カスタム ダッシュボードの作成、カスタム アラートの設定などの高度な分析と機能を利用できるようにします。