【モバイル】Firebase Crashlyticsでテストクラッシュさせる方法 2020/09版

2 min読了の目安(約1600字TECH技術記事

はじめに

Firebase Crashlytics から crash() メソッドが無くなっており、公式のドキュメントからも試験的にクラッシュさせる方法を探すのが面倒(※)な感じになっているので、こちらに記事を置いておきます。

※目次からいくと日本語だと古いドキュメントに繋がってしまいます。他にもいろいろ日本語版は古い or Android版のドキュメントが無かったりするので、公式ドキュメントは言語設定を英語にして探るのをオススメします。

Crashlytics で Test Crash を実行する

マジでシンプルなんですが以下のように記述します。

iOS

@IBAction func crashButtonTapped(_ sender: AnyObject) {
    fatalError()
}

Android

crashButton.setOnClickListener {
   throw RuntimeException("Test Crash") // Force a crash
}

普通に標準で用意されているエラーメソッド(Exception)を投げるだけです。

crashButton はレイアウトから配置するか、公式ドキュメントみたいに以下のように追加すると良いかと思います。

iOS

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        let button = UIButton(type: .roundedRect)
        button.frame = CGRect(x: 20, y: 50, width: 100, height: 30)
        button.setTitle("Crash", for: [])
        button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
        view.addSubview(button)
    }

    @IBAction func crashButtonTapped(_ sender: AnyObject) {
        fatalError()
    }
}

Android

val crashButton = Button(this)
crashButton.text = "Crash!"
crashButton.setOnClickListener {
   throw RuntimeException("Test Crash") // Force a crash
}

addContentView(crashButton, ViewGroup.LayoutParams(
       ViewGroup.LayoutParams.MATCH_PARENT,
       ViewGroup.LayoutParams.WRAP_CONTENT))

おわりに

最後に公式ドキュメントのリンクも貼っておきます。

Test your Crashlytics implementation