最新版本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通信的配置: