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 信息中心查看和调查所有报告和统计信息

原文地址:https://blog.csdn.net/feosun/article/details/122907563

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_9323.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注