测试您的 Firebase Crashlytics 实现

强制造成崩溃以便测试您的实现

您不必花费时间等待应用出现崩溃,即可判断 Crashlytics 是否正常工作。您只需要将以下代码添加到您的应用中,就可以使用 SDK 强制造成崩溃:

Swift

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()
    }
}

Objective-C

#import "ViewController.h"
#import <Crashlytics/Crashlytics.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:@"Crash" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(crashButtonTapped:)
        forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
}

- (IBAction)crashButtonTapped:(id)sender {
    [[Crashlytics sharedInstance] crash];
}

@end

如需测试实现,请按下应用中的按钮以强制造成崩溃,然后重新打开应用,以便 Crashlytics 能够将崩溃报告发送到 Firebase。该报告最多可能需要五分钟才能在 Firebase 控制台中显示。

调整项目的调试设置

如果您的编译版本在启动时附加了调试程序,Crashlytics 将无法捕获崩溃情况。请调整您的编译设置,以更改项目的调试信息格式:

  1. 在您的项目于 Xcode Navigator 中仍处于选中状态的情况下,打开 Build Settings 标签。
  2. 点击该标签顶部的 All 以显示所有编译设置。
  3. 搜索“debug information format”。
  4. Debug Information Format 设置设为 DWARF with dSYM File

开始测试

上述代码段添加了一个按钮,当您按下该按钮时,您的应用便会崩溃。要使该按钮发挥作用,请在不启动调试程序的情况下运行应用:

  1. 点击 Xcode 中的 Build and then run the current scheme,以在设备或模拟器上构建您的应用。
  2. 点击 Xcode 中的 Stop running the scheme or action,以关闭应用的初始实例。此初始实例包含一个调试程序,它会对 Crashlytics 造成干扰。
  3. 在模拟器或设备上再次打开该应用。
  4. 触摸 Crash 使该应用崩溃。
  5. 再次打开该应用,让 Crashlytics API 报告此次崩溃。崩溃报告应该会在 5 分钟内显示在 Firebase 控制台中。

启用 Crashlytics 调试日志记录

如果在您强制引发崩溃时,应用并没有崩溃,或比预计崩溃得更早,再或者您遇到了与 Crashlytics 有关的其他一些问题,您可以启用 Crashlytics 调试日志记录来跟踪问题。

Crashlytics 3.11.1+

要在开发设备上启用调试日志记录,请在 Xcode 中指定以下命令行参数:

-FIRDebugEnabled

过往版本

Swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions
        launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Initialize Firebase service.
        FirebaseApp.configure()
        Fabric.sharedSDK().debug = true
        return true
      }
    
Objective-C
- (BOOL)application:(UIApplication *)application
          didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Initialize Firebase service.
        [FIRApp configure];
        [Fabric.sharedSDK setDebug:YES];
        return YES;
      }
    

后续步骤

  • 自定义崩溃报告 - 在您添加 SDK 后,Crashlytics 就会立即自动开始收集崩溃报告,但您也可以通过添加自选式报告、日志、键甚至跟踪非严重错误来自定义您的设置。