どうも、たくチャレ(@takuchalle)です。

Firebase Crashlytics の導入

パッケージのインストールとiOS/Androidそれぞれの設定は、公式ドキュメントの手順通りに行えばハマることなくできると思います。

Flutterのコードは以下のようにしました。

void main() {
  FlutterError.onError = (details) {
    FlutterError.dumpErrorToConsole(details);
    Crashlytics.instance.recordFlutterError(details);
    if (kReleaseMode) exit(1);
  };

  runApp(App());
}

ポイントは以下の通りです。

  • 従来のデバッグ時のコンソールのエラーは出力
  • Crashlytics にも出力
  • リリースビルドの場合は強制的にアプリを終了

Flutter でエラー時にアプリを強制終了する記事でも紹介した方法で、Flutterでエラーが起きた時の関数を上書きしています。

動作確認方法

実際にクラッシュレポート機能が動くかどうか確認します。

デバッグモードでは無効になっているので、一時的にデバッグモードでも有効にします。確認し終わったらこの設定は消してください。

Crashlytics.instance.enableInDevMode = true;

そして、どこかクラッシュするコードを入れます。Crashlyticsパッケージの以下のコードでクラッシュさせることができます。

Crashlytics.instance.crash();

Firebaseコンソールへの反映は時間がかかる(最大で24時間)ので、しばらく待ってみてください。

公式ドキュメント