我最近在我的应用程序中实现了Crashlytics并使用以下方法来实现它:
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.setTitle("Crash", for: [])
button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
view.addSubview(button)
}
@IBAction func crashButtonTapped(_ sender: AnyObject) {
Crashlytics.sharedInstance().crash()
}
}
测试时,应用程序崩溃时出现错误Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
,当我检查崩溃日志时,它没有注册崩溃。我的实施有问题吗?
您需要确保没有激活调试器运行。
文档明确说明Test Crash
保持Xcode的调试器断开连接,并在导致崩溃后重新启动您的应用程序。崩溃后发生崩溃后发送崩溃,因此请务必将此行放在App Delegate的didFinishLaunching方法之外。请记住,不保证异常会导致崩溃。
和
使用模拟器测试您的应用程序? Xcode的调试器阻止我们捕获崩溃报告,但如果断开调试器,我们就能捕获它们。请注意,如果您的设备已插入您的设备,调试器仍然可能会妨碍您。确保Xcode的调试器断开连接。