Crashlyticsでクラッシュを起こしてもレポートが送信されないときの解決法

書いてあるといえばそうなのですが、引っかかってしまったのでここで記載しておきます。

ポイント

Crashlyticsで意図的にクラッシュさせて導入ができたか確認する際は、
Debugモードだと送信されないため、Macと端末との接続を切る(ケーブルを抜く)必要があります。
また、クラッシュレポートはアプリを再起動したタイミングで送信されます。

手順

  1. MacとiPhone/iPadをケーブルで繋いでRun(▶) ※ワイヤレスデバッグでも可
  2. アプリが起動したら、一旦Stop(■)
  3. アプリ内に組み込んだクラッシュボタンを押下
  4. アプリを再度起動(再度Runするのではなく、アイコンをタップして起動してください)
  5. Crashlyticsのダッシュボードに新しいクラッシュが表示され、レポートのメールが届く

クラッシュボタンの仕込み方

仕込みたいViewControllerに、下記のコードを追加してください。

import UIKit
import Crashlytics

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // クラッシュボタン
        let button = UIButton(type: .roundedRect)
        button.frame = CGRect(x: 20, y: 50, width: 100, height: 30)
        button.backgroundColor = .red
        button.setTitle("Crash", for: [])
        button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
        view.addSubview(button)
    }

    @IBAction func crashButtonTapped(_ sender: AnyObject) {
        Crashlytics.sharedInstance().crash()
    }

}
スポンサーリンク