强制造成崩溃以便测试您的实现
向应用添加可用于强制造成测试崩溃的代码。
您可以使用以下代码向应用添加一个按下即会导致崩溃的按钮。该按钮标有“测试崩溃”。
SwiftUI
Button("Crash") { fatalError("Crash was triggered") }
UIKit
Swift
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("Test Crash", for: []) button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside) view.addSubview(button) } @IBAction func crashButtonTapped(_ sender: AnyObject) { let numbers = [0] let _ = numbers[1] } }
Objective-C
#import "ViewController.h" @implementation ViewController ‐ (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(20, 50, 100, 30); [button setTitle:@"Test Crash" forState:UIControlStateNormal]; [button addTarget:self action:@selector(crashButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } ‐ (IBAction)crashButtonTapped:(id)sender { @[][1]; } @end
在断开 Xcode 调试程序的情况下,在 Xcode 中构建并运行您的应用。
点击
Build and then run the current scheme(构建并运行当前方案),在测试设备或模拟器上构建您的应用。等待应用运行,然后点击 Crashlytics 的调试程序。
停止运行方案或操作以关闭应用的初始实例。此初始实例包含会干扰
强制造成测试崩溃以发送应用的第一个崩溃报告:
在测试设备或模拟器的主屏幕中打开您的应用。
在您的应用中,按下您使用上述代码添加的“测试崩溃”按钮。
应用崩溃后,在 Xcode 中再次运行该应用,以便它可以将崩溃报告发送到 Firebase。
前往 Firebase 控制台的 Crashlytics 信息中心,查看您的测试崩溃报告。
如果您已刷新控制台,但在五分钟后仍未看到测试崩溃报告,请尝试启用调试日志记录(参见下一部分)。
为 Crashlytics 启用调试日志记录
如果您没有在 Crashlytics 信息中心内看到测试崩溃报告,可以使用 Crashlytics 的调试日志记录功能来帮助查明问题。
启用调试日志记录:
在 Xcode 中,依次选择 Product(产品)> Scheme(方案)> Edit scheme(编辑方案)。
从左侧菜单中选择 Run(运行),然后选择 Arguments(参数)标签页。
在 Arguments Passed on Launch(启动参数)部分,添加
-FIRDebugEnabled
。
强制造成测试崩溃。本页第一部分介绍了如何执行此操作。
在您的日志中,搜索来自 Crashlytics 并包含以下字符串的日志消息,该消息的存在可证实您的应用在向 Firebase 发送崩溃报告。
Completed report submission
如果您在 5 分钟后未在 Firebase 控制台的 Crashlytics 信息中心内看到此日志或测试崩溃报告,请联系 Firebase 支持团队并提供您的日志输出副本,以便我们进一步排查问题。
后续步骤
- 您可以通过添加自选式报告、日志、键以及非严重错误跟踪来自定义崩溃报告设置。