强制崩溃以测试您的实施
将可用于强制测试崩溃的代码添加到您的应用程序。
您可以使用以下代码向您的应用程序添加一个按钮,按下该按钮会导致崩溃。该按钮标记为“测试崩溃”。
斯威夫特用户界面
Button("Crash") { fatalError("Crash was triggered") }
UI工具包
迅速
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] } }
目标-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 中构建并运行您的应用程序。
单击
Build 然后运行当前方案以在测试设备或模拟器上构建您的应用程序。等待您的应用程序运行,然后单击
运行方案或操作以关闭您的应用程序的初始实例。这个初始实例包括干扰 Crashlytics 的调试器。
强制测试崩溃以发送您的应用程序的第一个崩溃报告:
从测试设备或模拟器的主屏幕打开您的应用程序。
在您的应用中,按下您使用上述代码添加的“测试崩溃”按钮。
在您的应用程序崩溃后,从 Xcode 再次运行它,以便您的应用程序可以将崩溃报告发送到 Firebase。
转到 Firebase 控制台的Crashlytics 仪表板以查看您的测试崩溃。
如果您刷新了控制台,但五分钟后仍然没有看到测试崩溃,请尝试启用调试日志记录(下一节)。
为 Crashlytics 启用调试日志记录
如果您在 Crashlytics 仪表板中没有看到您的测试崩溃,您可以使用 Crashlytics 的调试日志记录来帮助追踪问题。
启用调试日志记录:
在 Xcode 中,选择Product > Scheme > Edit scheme 。
从左侧菜单中选择运行,然后选择参数选项卡。
在启动时传递的参数部分中,添加
-FIRDebugEnabled
。
强制测试崩溃。本页的第一部分描述了如何执行此操作。
在您的日志中,搜索来自 Crashlytics 的包含以下字符串的日志消息,该消息验证您的应用程序正在向 Firebase 发送崩溃。
Completed report submission
如果您在五分钟后没有在 Firebase 控制台的 Crashlytics 仪表板中看到此日志或您的测试崩溃,请联系Firebase 支持并提供您的日志输出副本,以便我们可以帮助您进一步排查问题。
下一步
- 通过添加选择加入报告、日志、密钥和非致命错误跟踪来自定义您的崩溃报告设置。