TestBird 崩溃分析(Artisan) iOS SDK 使用指南

最新版本1.04 更新内容

支持H5插件,收集H5 JS异常;
支持Swift语言

一、快速集成

TestBird 崩溃分析(Artisan) iOS SDK,支持iOS 6.0 及以上版本。SDK及Plugin下载

集成具体方法如下:

Step 1. 创建App

  • 请注册TestBird账户并登陆产品后台,点这里注册登陆;

  • 通过“添加应用”按钮上传应用的ipa文件,添加您的新应用;

  • 添加应用后,在页面下方的“崩溃分析”面板中获取您的AppKey,初始化SDK时需要使用;

Step 2. 导入SDK

  • 下载SDK并解压,支持收集NSException导致的崩溃和Native崩溃

  • 如果您的应用是基于HTML的Hybird App,还可以下载集成HTML Plugin,支持收集javascript异常

  • 将TestBirdAgent.framework拖拽到XCode工程内,并勾选Copy items if need

Step 3. 添加依赖库

  • CoreTelephony.framework

  • SystemConfiguration.framework

  • Security.framework

  • libz.dylib

Step 4. 导入头文件

  • Objective-C,在 AppDelegate.m 中添加:

       #import 
    
  • Swift,请在 bridging-header.h 文件中导入头文件

Step 5. 初始化SDK

在 AppDelegate 的 application didFinishLaunchWithOptions 方法中添加SDK初始化语句:

  • Objective-C

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // 配置打开SDK调试模式,默认是关闭状态
        [TestBirdAgent setDebug:YES];

        // 初始化SDK
        [TestBirdAgent enableWithAppKey:@"YourAppKey"]; // YourAppKey 是在官网申请到的App Key
        return YES;
    }
  • Swift

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        TestBirdAgent.setDebug(true)
        TestBirdAgent.enableWithAppKey("YourAppKey") // YourAppKey 是在官网申请到的App Key
    }

注意:请先关闭其他第三方SDK的崩溃捕获接口,然后再初始化TestBird SDK,或将TestBird SDK初始化代码放到 didFinishLaunchWithOptions 方法最后,避免冲突。

二、SDK调试

SDK处于调试状态下,在APP启动之后,如果在设备日志输出中可以找到以下Log,就表明SDK初始化成功:

TestBird: CrashReporter enabled!
TestBird: framework bundle identifier: com.testbird.artisan.TestBirdAgent
TestBird: framework version: x.x.x

为确保SDK正常工作,请触发一次崩溃,并检查日志和Web分析报表

注意:多数时候需要重启一次应用,崩溃信息才能够上报成功

三、上传符号化文件

符号表是内存地址与函数名、文件名、行号的映射表。为了能快速并准确地定位用户APP发生崩溃等异常的代码位置,TestBird需要使用符号表对APP发生异常的程序错误堆栈进行解析和还原。

3.1 符号化文件的位置

在执行archive之后,可以在生成的“.xcarchive”文件夹中找到dSYMs的文件夹, 在dSYMs文件夹中有一个名为{APP_NAME}.app.dSYM的文件(APP_NAME是应用的名字),这个文件里面就包含了我们需要的符号表。

注意:如果发现这个位置没有 dSYM 文件,说明设置了打包时不生成符号表。可查看Build Settings -> Build Options -> Debug Information Format 的设置,必须选择DWARF with dSYM File才会生成符号表文件。

3.2 上传符号化文件

将符号化文件{APP_NAME}.app.dSYM压缩成zip包,通过崩溃分析应用设置中的“版本管理”上传。

注意:各个版本需要分别上传符号化文件。

3.3 Bitcode APP的符号化文件

开启了Bitcode的APP需要在XCode中下载符号化文件,具体方法如下:

  • 打开XCode的Organizer窗口,选择要对应的archive。

  • 再点击“Dowload dSYMs”,符号化文件会被下载到对应的archive目录。

  • 将对应的dSYM文件打包上传。

四、API 说明

4.1 启用崩溃报告功能

启用TestBirdAgent,并创建一个TestBirdAgent的实例,注册的APP Key

  • Objective-c

+ (TestBirdAgent *)enableWithAppKey:(NSString *)appKey;
  • Swift

 TestBirdAgent.enableWithAppKey(appKey: String) -> TestBirdAgent

4.2 获取 TestBirdAgent 的全局唯一实例

  • Objective-c

 + (TestBirdAgent *)sharedInstance;
  • Swift

 TestBirdAgent.sharedInstance() -> TestBirdAgent

4.3 设置User ID

调用该方法,设置当前使用App的用户账号,以便跟踪用户反馈,找出对应的崩溃或异常。

  • Objective-c

- (void)setUserId:(NSString *)userId;
  • Swift

setUserId(userId: String)

4.4 自定义Log日志

调用该方法,添加一条自定义Log日志,该Log会随崩溃堆栈等信息收集到崩溃报表中。自定义Log日志缓存Buffer是32KB,超出时只保留最新的Log。

  • Objective-c

-(void)addCustomLog:(NSString *)log;
  • Swift

addOneCustomLog(log: String!)

4.5 自定义键值对参数

添加自定义键值对参数

调用该方法后,将向缓存中添加一条键值对参数,参数将会被收集到崩溃报表中。键和值的总大小不能超过1KB,最多设置32条自定义键值对。

  • Objective-c

- (BOOL)setCustomValue:(NSString *)value forKey:(NSString *)key;
  • Swift

setCustomValue(value: String!, forKey: String!)

移除自定义键值对

  • Objective-c

 - (BOOL)removeCustomKey:(NSString *)key;
  • Swift

removeCustomKey(key: String!)

清除所有自定义键值对

  • Objective-c

 - (void)clearCustomKeys;
  • Swift

  clearCustomKeys()

4.6 设置Debug模式

将SDK设置为debug模式后,TestBirdAgent会输出调试Log,默认为关闭状态。

  • Objective-c

 - (void)setDebug:(BOOL)enable;
  • Swift

setDebug(enable: Bool)

4.7 上报NSException

可以通过该API手动上报NSException。手动上报的NSException将单独显示在分析报表的“异常”栏目中。

  • Objective-c

 - (void)reportException:(NSException *)exception;
  • Swift

// unsupported yet 

4.8 HTTPs开关

默认情况下SDK将使用HTTPs和服务器通信,如果需要使用非HTTPs的通信请在初始化SDKenablWithAppKey之前调用以下 接口(参数为NO,表示禁用HTTPs传输)

  • Objective-c

 - (void)enableSecurityTransport:(BOOL)enable;
  • Swift

enableSecurityTransport(enable: Bool)

HTTP通信配置,iOS 9要求默认使用HTTPs通信。TestBird目前支持HTTPs 和 HTTP 两种连接方式,如果要使用HTTP连接,请在Info.plist中,按照下图添加允许TestBird域名HTTP通信的配置:

也可以,添加允许任意域名HTTP通信的配置:

你可能感兴趣的:(sdk,ios)