iOS 集成Firebase统计(Analytics)、崩溃捕获(Crashlytics)、消息推送(Messaging) 2022版

本文详细介绍了如何在iOS应用中集成Firebase Analytics和Crashlytics,包括注册应用、添加配置文件、引入SDK、设置初始化代码、配置Xcode以自动上传dSYM文件,以及如何触发测试崩溃以验证Crashlytics的设置。通过这些步骤,开发者可以实现崩溃报告的自动收集和分析,从而提升应用的稳定性和性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 并上传文件。

  1. 打开项目的 Xcode 工作区,然后在左侧导航器中选择其项目文件。

  2. 从 TARGETS 列表中,选择您的主要构建目标。

  3. 点击 Build Settings 标签页,然后完成以下步骤,以便 Xcode 为您的 build 生成 dSYM。

    1. 点击 All,然后搜索 debug information format

    2. 对于所有 build 类型,请将 Debug Information Format 设置为 DWARF with dSYM File。

  4. 点击 Build Phases 标签页,然后完成以下步骤,以便 Xcode 可以处理您的 dSYM 并上传文件。

    1. 依次点击 add > New Run Script Phase。

      确保新的"运行脚本"阶段是项目的最后一个构建阶段;否则 Crashlytics 将无法正确处理 dSYM。

    2. 展开新的"Run Script"部分。

      注意:对于其余的子步骤,请完全按照指定的方式复制并粘贴路径,Xcode 将解析这些路径。不过,如果您在解析这些路径或独特的项目结构时遇到 Xcode 问题,可以手动指定路径。

    3. 在脚本字段(位于 Shell 标签下)中,添加以下运行脚本。

      此脚本会处理项目的 dSYM 文件,并将文件上传到 Crashlytics。

      "${PODS_ROOT}/FirebaseCrashlytics/run"
      
    4. 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 信息中心内查看初始数据,您需要强制造成一次测试崩溃。

  1. 向应用添加可用于强制造成测试崩溃的代码。

    您可以使用以下代码向应用添加一个按钮,该按钮在被按下时会造成崩溃。该按钮标有"测试崩溃"。

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
  1. 在 Xcode 中构建并运行您的应用。按照以下步骤操作,确保测试设备或模拟器已断开与 Xcode 调试程序(它会干扰 Crashlytics)的连接。
1.  点击 play_arrow Build and then run the current scheme,以在设备或模拟器上构建您的应用。

2.  等待应用运行,然后点击 stop Stop running the scheme or action 以关闭应用的初始实例。此初始实例包含会干扰 Crashlytics 的调试程序。
  1. 强制造成应用崩溃以发送应用的第一个崩溃报告:

    1. 在测试设备或模拟器的主屏幕中打开您的应用。

    2. 在您的应用中,按下您使用上述代码添加的"测试崩溃"按钮。

    3. 应用崩溃后,在 Xcode 中再次运行该应用,以便其将崩溃报告发送到 Firebase。

  2. 请转到 Firebase 控制台的 Crashlytics 信息中心 以查看您的测试崩溃报告。

    如果您已刷新控制台,但在五分钟后仍未看到测试崩溃报告,请启用调试日志记录,以查看您的应用是否正在发送崩溃报告。

大功告成!Crashlytics 现在会监控您的应用是否发生崩溃。 您可以访问 Crashlytics 信息中心以查看和调查所有报告和统计信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯子一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值