FlutterアプリにFirebase Crashlyticsを導入
目的
Firebase Crashlyticsは軽量なリアルタイムのクラッシュレポートツール。
Flutterアプリの場合は、致命的なイベントのレポートがアプリの再起動なしに、リアルタイムで送信される。
一方で、致命的ではないイベントのレポートはディスクに保存され、次の致命的なイベントのレポートと一緒に送信される。もしくは、アプリの再起動時に送信される。
導入方法
FlutterアプリへのFirebase Crashlyticsの導入は大まかに以下のステップで行う。
※ 詳細なステップや設定は公式ドキュメント参照
- firebase_crashlyticsパッケージをプロジェクトに導入
-
flutterfire
コマンドで最新のFirebase構成をFlutterプロジェクトに反映 - クラッシュイベントをキャッチして、レポートを回収できるように設定
- 意図的なクラッシュを起こして、Crashlyticsダッシュボードで最初のデータを確認
-
$flutter run
でアプリを再ビルド
クラッシュレポートを追跡しやすくする
先述の導入で、すでにアプリのクラッシュイベントが自動的にレポートされて、それらがCrashlyticsダッシュボードから確認できるようになっている。
ダッシュボードでレポートを確認する際に、より情報を特定するための追加カスタマイズがいくつか用意されている。
カスタムキー
カスタムキーというものを任意で設定することができる。
これを設定しておくと、ダッシュボードにて特定のキーでクラッシュレポートをフィルタリングすることができる。
カスタムログ メッセージ
任意のタイミングにクラッシュレポートログを追加することができる。
これを設定しておくと、ダッシュボードにて特定のクラッシュイベント情報のうち、ログ項目のところでクラッシュレポートが起こるまでのログを確認することができる。
※ ログがどの時点から特定のクラッシュイベントに紐づくのかは不明(未調査)
ユーザーID
UserIdentifierという値を設定することができる。
これを設定しておくと、特定のクラッシュがどのユーザーで発生したかを把握しやすくなる。
Crashlyticsダッシュボードでも、ユーザーIDでのフィルタリングボタンがあり、追跡が容易なので便利。
ユーザーIDをクリアしたい場合は、空文字で再登録するという対応を取る。
その他
オプトイン レポート
デフォルトでは、自動的にアプリのクラッシュレポートを収集するが、どのデータを送信するかを制御できるようにする機能。
この設定はそれぞれのプラットフォームごとに設定する必要あり。(Info.plist
とAndroidManifest.xml
)
Discussion