LoginSignup
28
22

More than 5 years have passed since last update.

Firebase Crashlyticsを導入する

Posted at

はじめに

Firebase Crashlytics を軽く試してみたのでまとめます。
組込先はAndroidアプリです。

ところでFirebase Crashlyticsって何だっけ

公式 によると次の通り。

Firebase Crashlytics は軽量なリアルタイムのクラッシュ レポート ツールで、アプリの
品質を低下させる安定性の問題を追跡し、優先順位を付け、修正するのに役立ちます。

これにより公開したアプリがエンドユーザー端末でクラッシュした際の解決の手がかりが得られます。
レポートは例えば次のような感じ。
image.png

image.png

Firebase Crash Reporting と Firebase Crashlytics と FabricのCrashlytics

Firebaseは以前はクラッシュレポートツールとして Crash Reporting を提供していましたが、これは
非推奨となり代わりに FabricのCrashlyticsベースにした Firebase Crashlytics が推奨となっています。

image.png

なお FabricCrashlytics は現在も導入可能ですが、Firebase とは管理画面および導入手順が異なっています。

Firebase Crashlyticsの導入方法は2パターン

次の2パターンがあるようです。

前者は既に FabricのCrashlytics を導入済みのアプリの救済策
(なのではないかと思った)ので今回は後者でやります。

そんなわけで試してみる

そんなわけで試してみます。 (`・ω・´)ゞ

ざっくりとした導入の流れ

次の通り。

(1) 適当なAndroidアプリを用意する
(2) Firebaseのアカウント(と適当なプロジェクト)を用意する
(3) アプリとFirebaseを接続する
(4) アプリにCrashlyticsを導入する
(5) 自爆ボタンを作る
(6) Crashlyticsの画面で設定を行いテストする

(1) 適当なAndroidアプリを用意する

何でもいいので適当に作ります。
image.png

(2) Firebaseのアカウント(と適当なプロジェクト)を用意する

適当に作ります。
image.png

(3) アプリとFirebaseを接続する

公式のここ に記載されている手順で接続します。

公式では Firebase Assistant を使うとラクだと書いてありますが、
何が行われるのかわかりにくいため、手動でやります。

手動でもFirebaseの管理画面に出てくるフローに従って作業するだけです。
具体的には次の通り。

(3-1) アプリの登録
(3-2) 設定ファイルのダウンロード
(3-3) Firebase SDK の追加
(3-4) アプリを実行してインストールを確認

(3-1) アプリの登録

まずフローの画面に移動します。
image.png

image.png

そしてアプリのパッケージ名をFirebaseプロジェクトに登録します。
image.png

(3-2) 設定ファイルのダウンロード

image.png

(3-3) Firebase SDK の追加

image.png

(3-4) アプリを実行してインストールを確認

これまでの作業でローカルのソースには google-services.json が追加され、
プロジェクトとアプリレベルの build.gradle にそれぞれ追記が行われました。

フローを進め、その後アプリを起動します。
image.png

image.png

以上で接続完了です。

(4) アプリにCrashlyticsを導入する

公式のここ を参考にプロジェクトレベルとアプリレベルの build.gradle にそれぞれ追記します。

プロジェクトレベル

image.png

アプリレベル

image.png

この手順は各 build.gradle に上記を追記するだけで完了です。

FabricのようにAndroidManifest.xmlActivity#onCreate()
いじらなくてもいいです。

これでアプリがクラッシュするとFirebaseにレポートが送信されます。

(5) 自爆ボタンを作る

アプリがクラッシュしないとテスト出来ないため、適当に自爆ボタンを作ります。
画面を適当に作り・・
Screenshot_20190124-160631.png

ソースが次のような感じ

MainActivity.kt
package com.example.orenobug

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity;
import android.widget.Button
import com.crashlytics.android.Crashlytics

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        findViewById<Button>(R.id.jibaku_button) .setOnClickListener { view ->
            Crashlytics.getInstance().crash()
        }
    }
}

出来たら何回かクラッシュさせてみてください。

(6) Crashlyticsの画面で設定を行いテストする

(5) まで行った結果、Project Overview に下図のようにサマリーが出ました。
しかし Crashlytics にはまだ出てきません。
image.png

そこでCrashlyticsのタブで次のように設定します。
image.png

次の画面でSDKをインストールするよう指示されますがこれは (4) で済んでいます。
この状態でアプリを起動して何回かクラッシュさせてみます。
image.png

すると、冒頭のスクショようなレポートが出てくるようになります。

以上で完了です。

かんそう

歴史的な経緯(?)から導入がややこしいことになってるなと思いました。

また既にFabricのCrashlyticsでいい感じにデータが取れている場合は
FabricとFirebaseをリンクさせた方がラクです。

この場合はアプリは修正不要で管理画面でポチポチするだけでよい(っぽいです)。
image.png

現場からは以上です。

28
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
22