测试您的 Firebase Crashlytics 实现代码

iOS
Android

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

iOS

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

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

调整项目的调试设置

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

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

开始测试

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

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

您不必花费时间等待应用出现崩溃,即可判断 Crashlytics 是否正在运行。您可以在应用的 MainActivity 中添加一个按钮来强制造成崩溃:

Button crashButton = new Button(this);
crashButton.setText("Crash!");
crashButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        Crashlytics.getInstance().crash(); // Force a crash
    }
});
addContentView(crashButton,
               new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
               ViewGroup.LayoutParams.WRAP_CONTENT));

测试时,在按下该按钮以使您的应用崩溃,请重新打开该应用,以确保 Crashlytics 有机会报告此次崩溃。报告应该会在五分钟内显示在 Firebase 控制台中。

启用 Crashlytics 调试模式

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

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

要在 Android 上启用调试模式,您首先需要在 AndroidManifest.xml 中添加一行代码来停用自动初始化:

<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />

然后,您可以在启用了调试程序的情况下手动初始化 Crashlytics:

final Fabric fabric = new Fabric.Builder(this)
        .kits(new Crashlytics())
        .debuggable(true)           // Enables Crashlytics debugger
        .build();
Fabric.with(fabric);

后续步骤

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

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面