最近、FirebaseのCrashlyticsをアプリに導入してみたら、リリース後の不具合調査でかなり使えることがわかったので、メモとして残しております。
既存アプリを大幅にリニューアル
最近、受託開発しているアプリの大幅リニューアルを行いました。
状況的には以下のような感じでした。
・古いゲームエンジンだったので、ネイティブ(iOS・Android)で作り直し
・既存ユーザーが多数いるアプリで熱心なユーザーが多い
アプリリリース後、大量の不具合報告
社内デバッグが終わり、ようやくリリースしたのですが、
リリース後にアプリレビューで大量の不具合報告が上がりました。
「アプリを起動してもすぐに強制終了してしまう」
「動作が遅くなった。前の方がよかった」
「使って5分も立たないうちにアプリが落ちてしまう。最悪」
ユーザーからの不具合報告では、情報が不十分
ユーザーレビューの内容から、対応できるものは対応しましたが、具体的にどんな不具合なのか、どこでクラッシュしたのか、どういう状況でクラッシュしたのかという情報が全く書かれていないレビューが多いです。なので、見当もつかない不具合や、社内の端末で再現しようとしてもできない不具合の場合、実際にユーザーに問い合わせて、運良ければ情報を教えてもらえます。ただ、大体はそこまで細かい情報をユーザーは教えてくれません。(多分面倒なんだと思いますが、ユーザー目線で考えると確かに面倒くさい)
Firebase Crashlyticsを導入してみた
とにかくまずはクラッシュする原因を調査しようと思い、クラッシュ解析ツールである「Firebase Crashlytics」を導入してみました。
「Firebase Crashlytics」を導入してみたら、以下のようなことがわかりました。
- 日付毎のクラッシュ数(バージョン別にも確認できる)
- クラッシュ数の多い場所がコードの何行目かを示してくれる
- クラッシュした端末の情報まで確認できる(OSバージョン・端末名称)
日付毎のクラッシュ数(バージョン別にも確認できる)
まず、日付毎、バージョン毎にアプリ全体のクラッシュ数が確認できます。
アプリリリース直後からクラッシュが100件以上増えた場合は何かしらのクラッシュ原因ができてしまったってことがすぐに把握できます。
また、修正版をリリース後にクラッシュ数が減ったことが確認できれば、修正対応の効果があった(クラッシュを解消できた)ということが確認できるのもいいですね。
クラッシュ数の多い場所がコードの何行目かを示してくれる
これが一番重要な機能だと思いますが、クラッシュした場所がコードの何行目なのかまで示してくれます。エラーログを表示してくれるクラッシュ解析ツールは結構みたことありますが、何行目でクラッシュしたかまで教えてくれるのは超助かります。
実際にこのエラーログを元に修正したところ、クラッシュが大幅に減りました。
仮にまだCrashlyticsを導入せずに運用し続けていた場合のことを考えるとゾッとします...とりあえずクラッシュ場所の特定ができる点が一番おすすめです。
クラッシュした端末の情報まで確認できる(OSバージョン・端末名称)
どのOSバージョンで多い不具合なのか、どの端末で多くクラッシュが発生しているのかも確認できます。実際にクラッシュ原因だった不具合は、Android9.0の端末で発生する不具合で、Android9.0端末でのクラッシュが以上に多かったのですが、Crashlyticsを導入するまでは原因をつき止められなかったので、Crashlyticsさまさまです。
Firebase Crashlyticsはリリース後のアプリ不具合調査にかなりおすすめ!まとめ
今回は、クラッシュ解析ツール「Firebase Crashlytics」を使ってみたらめちゃくちゃ便利だったという話でした。
アプリ開発では、アプリリリース後のユーザーからの不具合報告だけでは判断しづらい不具合もたくさんあるので、「Firebase Crashlytics」のようなツールをうまく活用して不具合の少ないアプリを開発・運用したいものですね。