https://firebase.google.cn/docs/ios/setup
一、统计(Analytics)
1、注册应用
2、下载配置文件
3、添加Firebase SDK\
使用Cocoapods导入
pod 'Firebase/Analytics'
4、添加初始化代码
@import Firebase;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application\
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\
[FIRApp configure];\
return YES;\
}
二、崩溃捕获(Crashlytics)
1、在 Firebase 控制台中设置 Crashlytics
2、添加 Crashlytics SDK\
使用Cocoapods导入
pod 'FirebaseCrashlytics'
然后运行pod install 安装
第 3 步:设置 Xcode 以自动上传 dSYM 文件
若要生成方便人们阅读的崩溃报告,Crashlytics 需要项目的调试符号 (dSYM) 文件。以下步骤介绍了如何配置 Xcode,使其在您每次构建应用时自动生成 dSYM、处理 dSYM 并上传文件。
-
打开项目的 Xcode 工作区,然后在左侧导航器中选择其项目文件。
-
从 TARGETS 列表中,选择您的主要构建目标。
-
点击 Build Settings 标签页,然后完成以下步骤,以便 Xcode 为您的 build 生成 dSYM。
-
点击 All,然后搜索
debug information format
。 -
对于所有 build 类型,请将 Debug Information Format 设置为 DWARF with dSYM File。
-
-
点击 Build Phases 标签页,然后完成以下步骤,以便 Xcode 可以处理您的 dSYM 并上传文件。
-
依次点击 add > New Run Script Phase。
确保新的"运行脚本"阶段是项目的最后一个构建阶段;否则 Crashlytics 将无法正确处理 dSYM。
-
展开新的"Run Script"部分。
注意:对于其余的子步骤,请完全按照指定的方式复制并粘贴路径,Xcode 将解析这些路径。不过,如果您在解析这些路径或独特的项目结构时遇到 Xcode 问题,可以手动指定路径。
-
在脚本字段(位于 Shell 标签下)中,添加以下运行脚本。
此脚本会处理项目的 dSYM 文件,并将文件上传到 Crashlytics。
"${PODS_ROOT}/FirebaseCrashlytics/run"
-
在 Input Files 部分中,添加以下文件的路径。
-
添加项目的 dSYM 文件的路径
如此 Crashlytics 将能够更快地处理大型应用的 dSYM。
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
-
将路径添加到项目的已构建
Info.plist
文件如此 Crashlytics 便可将应用版本与 dSYM 相关联。
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
-
第 4 步:强制造成一次测试崩溃以完成设置
若要完成 Crashlytics 设置并在 Firebase 控制台的 Crashlytics 信息中心内查看初始数据,您需要强制造成一次测试崩溃。
-
向应用添加可用于强制造成测试崩溃的代码。
您可以使用以下代码向应用添加一个按钮,该按钮在被按下时会造成崩溃。该按钮标有"测试崩溃"。
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 调试程序(它会干扰 Crashlytics)的连接。
1. 点击 play_arrow Build and then run the current scheme,以在设备或模拟器上构建您的应用。
2. 等待应用运行,然后点击 stop Stop running the scheme or action 以关闭应用的初始实例。此初始实例包含会干扰 Crashlytics 的调试程序。
-
强制造成应用崩溃以发送应用的第一个崩溃报告:
-
在测试设备或模拟器的主屏幕中打开您的应用。
-
在您的应用中,按下您使用上述代码添加的"测试崩溃"按钮。
-
应用崩溃后,在 Xcode 中再次运行该应用,以便其将崩溃报告发送到 Firebase。
-
-
请转到 Firebase 控制台的 Crashlytics 信息中心 以查看您的测试崩溃报告。
如果您已刷新控制台,但在五分钟后仍未看到测试崩溃报告,请启用调试日志记录,以查看您的应用是否正在发送崩溃报告。
大功告成!Crashlytics 现在会监控您的应用是否发生崩溃。 您可以访问 Crashlytics 信息中心以查看和调查所有报告和统计信息。