項目需求:項目上線后防楷,為了能夠快速定位到線上版本bug位置校赤,決定導(dǎo)入使用一下Bugly。
解決方案:使用Bugly
解決午绳。
一置侍、官網(wǎng)注冊Bugly,獲取APP ID
,APP Key
二拦焚、 集成Bugly
推薦 cocoapods,pod 'Bugly
三蜡坊、Appdelegate中代碼集成
//Bugly
- (void)configureBugly {
BuglyConfig *config = [[BuglyConfig alloc] init];
config.unexpectedTerminatingDetectionEnable = YES; //非正常退出事件記錄開關(guān),默認(rèn)關(guān)閉
config.reportLogLevel = BuglyLogLevelWarn; //報告級別
//config.deviceIdentifier = [UIDevice currentDevice].identifierForVendor.UUIDString; //設(shè)備標(biāo)識
config.blockMonitorEnable = YES; //開啟卡頓監(jiān)控
config.blockMonitorTimeout = 1; //卡頓監(jiān)控判斷間隔赎败,單位為秒
config.delegate = self;
#if DEBUG
config.debugMode = YES; //SDK Debug信息開關(guān), 默認(rèn)關(guān)閉
config.channel = @"debug";
#else
config.channel = @"release";
#endif
[Bugly startWithAppId:TY_BUGLY_APP_ID
#if DEBUG
developmentDevice:YES
#endif
config:config];
}
#pragma mark - BuglyDelegate
//此方法返回的數(shù)據(jù)秕衙,可在bugly平臺中異常上報,具體異常信息的跟蹤數(shù)據(jù)附件信息中的crash_attach.log中查看
- (NSString *)attachmentForException:(NSException *)exception{
return [NSString stringWithFormat:@"exceptionInfo:\nname:%@\nreason:%@",exception.name,exception.reason];
}
四僵刮、自動導(dǎo)入符號表
此時灾梦,Bugly
已經(jīng)接入,在程序出現(xiàn)問題的時候可以在Bugly
官網(wǎng)產(chǎn)品里面查看問題定位妓笙,但是要精確定位到崩潰的方法和崩潰代碼的具體行數(shù),就要導(dǎo)入符號表了.
- 首先下載自動配置符號表 符號表下載
下載的內(nèi)容里面包括:
buglySymboliOS.jar
dSYMUpload.sh
- 接著安裝JAVA環(huán)境 (自己在網(wǎng)上找了一個下載地址,也可到JDK官網(wǎng)下載) JDK1.8下載
Tips:上傳符號表為什么需要java環(huán)境能岩?
因為符號表提取工具依賴于java環(huán)境寞宫,符號表工具只提取必要的信息,可以大幅度減少需要上傳的文件體積
- 將下載的文件
buglySymboliOS.jar
放在用戶目錄的bin
文件下(如果沒有請自行創(chuàng)建)
圖1_bin文件的位置.png - 編輯
dSYMUpload.sh
文件拉鹃,修改其中的APP ID
,APP Key
,Bundle identifier
圖2_要修改的信息配置.png - 復(fù)制粘貼
dSYMUpload.sh
文件的內(nèi)容在Xcode
中導(dǎo)入運行就可以啦.
在Xcode ->Targets->Builds Phases
圖3_運行腳本位置.png - 效果圖如下
舉個栗子:我的報錯信息是 數(shù)組越界辈赋,代碼定位在類QuestionChoiceView
的setQuestionModel
方法中鲫忍,具體代碼行數(shù)是45
行.
圖4_具體效果圖.png
五、寫在最后 (遇到的問題) :
Q:小編想要在Debug
環(huán)境下測試Bugly
是否會正常上報信息钥屈?
A:
- 首先我們要知道
Bugly
默認(rèn)在release
環(huán)境下上報信息悟民,在Debug
模式下不上傳;如果想修改篷就,就在圖2的dSYMUpload.sh
文件里面修改Debug
模式下正常上傳的字段UPLOAD_DEBUG_SYMBOLS=1
射亏。 - 修改Xcode->Targets->Build Settings->Debug information Format的Dug為
DWARFwithdSYM File
如下圖所示:
圖5_修改debug模式.png