よくあるクラッシュレポートツール

Firebase Crashlytics に概要の説明が書いてある:

Firebase Crashlytics は軽量なリアルタイムのクラッシュ レポート ツールで、アプリの品質を低下させる安定性の問題を追跡し、優先順位を付け、修正するのに役立ちます。Crashlytics を使用すると、クラッシュをインテリジェントにグループ化し、クラッシュにつながった状況をあぶり出すことによって、トラブルシューティングの時間を節約できます。

この手のツールというのは昔から何かしらあって Google Play Console にも同様にクラッシュレポートを表示する機能があるのだが、これを入れておくと開発中のアプリを誰かに試してもらっている時にクラッシュした場合にそのバグレポートを Web 上ですぐに確認できるので便利だ。 ちなみに昔は Firebase Crash Reporting という機能があったのだがこれは非推奨となり Firebase Crashlytics への移行が求められる。 というわけで私としても既存アプリの Crashlytics への移行を余儀なくされたわけだが、その過程で微妙にハマったのでメモ。

手順を正しく踏まないと収集開始されない

導入方法は 公式の Get started に詳しく書かれているのでこの通りにやれば簡単に導入できる。 はずだったのだがこの通り build.gradle に書いてアプリを実行、適当にクラッシュさせても全く反映されない。 具体的には Firebase Console から対象アプリの Crashlytics を開いても以下の未設定の画面のままとなる。

Crashlytics 未設定

どうも以下の手順を踏まないと駄目なようなので書いておく。

1. 「Crashlytics を設定」を押しておく

前述の Crashlytics の未設定を示す画面で「Crashlytics を設定」を押下し画面遷移、このアプリでの Crashlytics の利用は初めてですか?の質問にはいと答える。 そして次の SDK をインストールしますの項目で 「Crashlytics ドキュメントに移動」ボタンを押下する。 すると以下の「Crashlytics 設定待ち」の画面になる。 この画面を立ち上げたままにしておく。

Crashlytics 設定待ち

2. アプリを起動して一旦クラッシュさせる

前述の状態を満たした上でアプリをビルドし、何かしらのわざとクラッシュするコードを仕掛けてクラッシュさせる。 公式に書いてある通り Crashlytics.getInstance().crash() がいいだろう。 そして、公式に書いてある通りアプリを起動した瞬間にクラッシュするのではなく、何かしらのボタンを押下したりなどの際にクラッシュさせるのがいいと思われる。 何故ならどうも Crashlytics のレポートは再度アプリを起動した時に送信されるようだからだ。

3. アプリを再度起動する

Crashlytics のレポートを送信させるために再度アプリを起動する。

4. Crashlytics 設定待ちの画面を見ながら少し待つ

  1. で設定した設定待ち画面を見ながら少し待っていると、設定が完了したことを示す画面に遷移する。