此快速入门介绍了如何使用 Firebase Crashlytics SDK 在应用中设置 Firebase Crashlytics,以便您可以在 Firebase 控制台中获得全面的崩溃报告。
设置 Crashlytics 需要在 Firebase 控制台和 IDE 中分别执行一些操作(例如添加 Firebase 配置文件和 Crashlytics SDK)。为了完成设置,您需要强制造成一次测试崩溃,以便向 Firebase 发送您的第一个崩溃报告。
准备工作
将 Firebase 添加到您的 Apple 项目(如果尚未添加)。如果您没有 Apple 应用,可以下载一个示例应用。
建议做法:如需使用“未遇到崩溃问题的用户”“面包屑导航日志”和“疾速崩溃提醒”等功能,您需要在 Firebase 项目中启用 Google Analytics(分析)。
Crashlytics 支持的所有 Apple 平台(watchOS 除外)都可以利用 Google Analytics(分析)中的这些功能。请注意,对于 macOS 和 tvOS 应用,您需要使用 SDK v8.9.0 或更高版本。
如果您的现有 Firebase 项目未启用 Google Analytics(分析),您可以访问 Firebase 控制台,依次点击
,然后在 >“项目设置”集成标签页中启用 Google Analytics(分析)。 如果您要创建新的 Firebase 项目,请在项目创建过程中启用 Google Analytics(分析)。
第 1 步:将 Crashlytics SDK 添加到您的应用
使用 Swift Package Manager 安装和管理 Firebase 依赖项。
- 在 Xcode 中打开您的应用项目,依次点击 File(文件)> Add Packages(添加软件包)。
- 出现提示时,添加 Firebase Apple 平台 SDK 代码库:
- 选择 Crashlytics 库。
- 为了获得最佳的 Crashlytics 使用体验,我们建议您在 Firebase 项目中启用 Google Analytics(分析),并将 Firebase SDK for Google Analytics 添加到您的应用中。您可以选择不收集 IDFA 的库,也可以选择收集 IDFA 的库。
- 完成之后,Xcode 将会自动开始在后台解析和下载您的依赖项。
https://github.com/firebase/firebase-ios-sdk
接下来,配置 Firebase 模块:
在
App
结构体或UIApplicationDelegate
中导入 Firebase 模块:Swift
import Firebase
Objective-C
@import Firebase;
配置一个
FirebaseApp
共享实例(通常在应用的application(_:didFinishLaunchingWithOptions:)
方法中配置):Swift
// Use the Firebase library to configure APIs. FirebaseApp.configure()
Objective-C
// Use the Firebase library to configure APIs. [FIRApp configure];
第 2 步:设置 Xcode 以自动上传 dSYM 文件
若要生成方便阅读的崩溃报告,Crashlytics 需要使用项目的调试符号 (dSYM) 文件。以下步骤介绍了如何配置 Xcode,使其在您每次构建应用时自动生成 dSYM、处理 dSYM 并上传文件。
打开项目的 Xcode 工作区,然后在左侧导航器中选择其项目文件。
从 TARGETS(目标)列表中,选择您的主要 build 目标。
点击 Build Settings(构建设置)标签页,然后完成以下步骤,以便 Xcode 为您的 build 生成 dSYM。
点击 All(全部),然后搜索
debug information format
。对于所有 build 类型,将 Debug Information Format(调试信息格式)设置为
DWARF with dSYM File
。
点击 Build Phases(构建阶段)标签页,然后完成以下步骤,以便 Xcode 可以处理您的 dSYM 并上传文件。
依次点击
> New Run Script Phase(新建运行脚本阶段)。确保这个新运行脚本阶段是项目的最后一个构建阶段;否则 Crashlytics 将无法正确处理 dSYM。
展开新的“Run Script”(运行脚本)部分。
在脚本字段(位于 Shell 标签下)中,添加以下运行脚本。
此脚本会处理项目的 dSYM 文件,并将文件上传到 Crashlytics。
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
在 Input Files(输入文件)部分,添加以下文件的位置路径。
项目的 dSYM 文件的位置:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
提供项目的 dSYM 文件位置可让 Crashlytics 更快地处理大型应用的 dSYM。
项目的已构建
Info.plist
文件的位置:$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
提供项目已构建
Info.plist
文件的位置使 Crashlytics 能够将应用版本与 dSYM 关联。
如需详细了解 dSYM 文件和 Crashlytics(包括如何手动上传 dSYM 文件),请访问获取经过去混淆处理的崩溃报告。
第 3 步:强制造成一次测试崩溃以完成设置
若要完成 Crashlytics 设置并在 Firebase 控制台的 Crashlytics 信息中心内查看初始数据,您需要强制造成一次测试崩溃。
向应用添加可用于强制造成测试崩溃的代码。
您可以使用以下代码向应用添加一个按下即会导致崩溃的按钮。该按钮标有“测试崩溃”。
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 中构建并运行您的应用。
点击
Build and then run the current scheme(构建并运行当前方案),在测试设备或模拟器上构建您的应用。等待应用运行,然后点击
Stop running the scheme or action(停止运行方案或操作)以关闭应用的初始实例。此初始实例包含会干扰 Crashlytics 的调试程序。
强制造成测试崩溃以发送应用的第一个崩溃报告:
在测试设备或模拟器的主屏幕中打开您的应用。
在您的应用中,按下您使用上述代码添加的“测试崩溃”按钮。
应用崩溃后,在 Xcode 中再次运行该应用,以便它可以将崩溃报告发送到 Firebase。
前往 Firebase 控制台的 Crashlytics 信息中心,查看您的测试崩溃报告。
如果您已刷新控制台,但在五分钟后仍未看到测试崩溃报告,请启用调试日志记录,查看您的应用是否正在发送崩溃报告。
大功告成!Crashlytics 现在会监控您的应用是否发生崩溃。 您可以访问 Crashlytics 信息中心以查看和调查所有报告和统计信息。
后续步骤
- 您可以通过添加自选式报告、日志、键以及跟踪非严重错误来自定义崩溃报告设置。