Firebase和Crashlytics代表

问题描述 投票:0回答:1

我想检测上次会话是否崩溃,以便我可以尝试恢复。

我在应用程序didFinishLaunchingWithOptions中得到了像这样的CrashlyticsDelegate设置:

Crashlytics.sharedInstance().delegate = self
FirebaseApp.configure()

(Crashlytics由Firebase初始化)

这是我正在使用的委托方法:

func crashlyticsDidDetectReport(forLastExecution report: CLSReport, completionHandler: @escaping (Bool) -> Void) {
    print("FOUND CRASH")
    PXNAssistant.shared.recoverCrash()
    completionHandler(true)
}

然后我叫这个强制崩溃:

Crashlytics.sharedInstance().crash()

那,“FOUND CRASH”永远不会被打印出来......

任何人都知道我做错了什么?

ios firebase crashlytics
1个回答
1
投票

乍一看你的代码看起来很好。你在哪里打电话给Crashlytics.sharedInstance().crash()?如果它在应用程序委托中,可能它没有注册,因为应用程序委托尚未完成设置firebase / crashlytics。你应该在你的代码中可能发生崩溃的地方使用Crashlytics.sharedInstance().crash(),例如force-unwrappingdo-try-catch块。您是否尝试在项目中实施Firebase的示例代码?

import UIKit
import Crashlytics

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) {
        Crashlytics.sharedInstance().crash()
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.