一、官网注册Bugly,获取APP ID,APP Key
二、 集成Bugly
pod 'Bugly'
三、Appdelegate中代码集成
#import "AppDelegate.h"
#import <Bugly/Bugly.h>
@interface AppDelegate ()<BuglyDelegate>
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self configureBugly];
return YES;
}
//Bugly
- (void)configureBugly {
BuglyConfig *config = [[BuglyConfig alloc] init];
config.unexpectedTerminatingDetectionEnable = YES; //非正常退出事件记录开关,默认关闭
config.reportLogLevel = BuglyLogLevelWarn; //报告级别
//config.deviceIdentifier = [UIDevice currentDevice].identifierForVendor.UUIDString; //设备标识
config.blockMonitorEnable = YES; //开启卡顿监控
config.blockMonitorTimeout = 1; //卡顿监控判断间隔,单位为秒
config.delegate = self;
#if DEBUG
config.debugMode = YES; //SDK Debug信息开关, 默认关闭
config.channel = @"debug";
#else
config.channel = @"release";
#endif
[Bugly startWithAppId:@"25b2a84e03"
#if DEBUG
developmentDevice:YES
#endif
config:config];
}
#pragma mark - BuglyDelegate
//此方法返回的数据,可在bugly平台中异常上报,具体异常信息的跟踪数据附件信息中的crash_attach.log中查看
- (NSString *)attachmentForException:(NSException *)exception{
return [NSString stringWithFormat:@"exceptionInfo:\nname:%@\nreason:%@",exception.name,exception.reason];
}
@end
四、自动导入符号表
此时,Bugly
已经接入,在程序出现问题的时候可以在Bugly
官网产品里面查看问题定位,但是要精确定位到崩溃的方法和崩溃代码的具体行数,就要导入符号表了.
- 首先下载自动配置符号表 符号表下载
下载的内容里面包括:
buglySymboliOS.jar
dSYMUpload.sh
- 接着安装JAVA环境 (自己在网上找了一个下载地址,也可到JDK官网下载) JDK1.8下载
Tips:上传符号表为什么需要java环境?
因为符号表提取工具依赖于java环境,符号表工具只提取必要的信息,可以大幅度减少需要上传的文件体积
3.将下载的文件buglySymboliOS.jar放在用户目录的bin文件下(如果没有请自行创建)
4.编辑dSYMUpload.sh文件,修改其中的APP ID , APP Key, Bundle identifier
5.复制粘贴dSYMUpload.sh文件的内容在Xcode中导入运行就可以啦.
在 Xcode ->Targets->Builds Phases
6.效果图如下
举个栗子:我的报错信息是 数组越界,代码定位在类ViewController的Crash方法中
五、写在最后 (遇到的问题) :
Q:小编想要在Debug
环境下测试Bugly
是否会正常上报信息?
A:
首先我们要知道
Bugly
默认在release
环境下上报信息,在Debug
模式下不上传;如果想修改,就在图2的dSYMUpload.sh
文件里面修改Debug
模式下正常上传的字段UPLOAD_DEBUG_SYMBOLS=1
。-
修改Xcode->Targets->Build Settings->Debug information Format的Dug为
DWARFwithdSYM File
如下图所示: