前言
由于前期趕項(xiàng)目,所以在項(xiàng)目中難免多了一些bug,最近項(xiàng)目閑了下來(lái),為了能夠快速定位到線上版本bug位置,經(jīng)過(guò)比較之后,決定使用騰訊家的Bugly。
keywords: Bugly、集成Bugly、Bugly使用、騰訊Bugly
登錄賬號(hào)
- 瀏覽器中打開Bugly點(diǎn)我進(jìn)入Bugly。
- 使用QQ或者郵箱登錄,如果沒有請(qǐng)先注冊(cè)。
創(chuàng)建程序
-
新建產(chǎn)品
點(diǎn)擊新建產(chǎn)品
create.png -
實(shí)名認(rèn)證
如果沒有實(shí)名認(rèn)證,請(qǐng)先認(rèn)證。
realName.png 創(chuàng)建應(yīng)用
輸入相關(guān)信息,點(diǎn)擊保存

-
查看應(yīng)用
在我的產(chǎn)品中,可以看到剛才創(chuàng)建的應(yīng)用,點(diǎn)擊設(shè)置,獲取應(yīng)用的AppID,AppKey
productlist.png

集成Bugly
具體可參考Bugly-iOS官方文檔,這里只介紹cocoaPods方式集成
- 如果未安裝cocoaPods,請(qǐng)自行百度/Google
- 如果更新cocoaPods,請(qǐng)參考我的另外一篇文章cocoapods更新
- 如果已安裝cocoaPods
- 在podfile文件中加入
pod 'Bugly'- 控制臺(tái)查詢bugly版本
pod search Bugly //如果和官方最新版不一致,請(qǐng)執(zhí)行下面的代碼
pod update //更新pod資源庫(kù),如果一致,可執(zhí)行 pod --verbose --no-repo-update
- Appdelegate中代碼中集成
//Bugly
- (void)configureBugly {
BuglyConfig *config = [[BuglyConfig alloc] init];
config.unexpectedTerminatingDetectionEnable = YES; //非正常退出事件記錄開關(guān),默認(rèn)關(guān)閉
config.reportLogLevel = BuglyLogLevelWarn; //報(bào)告級(jí)別
//config.deviceIdentifier = [UIDevice currentDevice].identifierForVendor.UUIDString; //設(shè)備標(biāo)識(shí)
config.blockMonitorEnable = YES; //開啟卡頓監(jiān)控
config.blockMonitorTimeout = 5; //卡頓監(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];
}
如果實(shí)現(xiàn)了BuglyDelegate
#pragma mark - BuglyDelegate
//此方法返回的數(shù)據(jù),可在bugly平臺(tái)中異常上報(bào),具體異常信息的跟蹤數(shù)據(jù)附件信息中的crash_attach.log中查看
-(NSString *)attachmentForException:(NSException *)exception{
// [Bugly reportException:exception];
return [NSString stringWithFormat:@"exceptionInfo:\nname:%@\nreason:%@",exception.name,exception.reason];
}
到這里,Bugly就已經(jīng)集成成功了,如果程序再出現(xiàn)bug,就可以在管理平臺(tái)上看到,下面是我測(cè)試數(shù)據(jù)

點(diǎn)擊進(jìn)入其中一個(gè)異常,可以發(fā)現(xiàn)具體的異常問(wèn)題,和出錯(cuò)類名及方法名,向下翻還可以看到出錯(cuò)手機(jī)信息以及堆棧信息。

細(xì)心的朋友可能會(huì)發(fā)現(xiàn),這里只看到了堆棧信息,但是具體錯(cuò)在哪一行,我們并不知道,原因上面寫說(shuō)的很清楚,因?yàn)槲覀儧]有配置該版本的符號(hào)表文件,點(diǎn)擊配置,你可以選擇下載符號(hào)表工具,或者查看自動(dòng)上傳符號(hào)文件


1. 自動(dòng)上傳符號(hào)表
- 點(diǎn)擊下載符號(hào)表工具,解壓獲得
- buglySymboliOS.jar
- dSYMUpload.sh
- 將解壓后的文件,放到指定位置


-
配置腳本信息
打開dSYMUpload.sh,配置好你的Bugly的AppID, APPKey, 以及應(yīng)用的Bundle id,復(fù)制全部
sh.png -
打開Xcode》Build Phases,添加運(yùn)行腳本
test6.png 查看自己電腦是否已經(jīng)安裝Java環(huán)境,控制臺(tái)中輸入

- 如果可以獲取到Java版本,則配置到此結(jié)束。
- 如果出現(xiàn)No Java,說(shuō)明電腦沒有安裝Java環(huán)境,請(qǐng)下載java環(huán)境。安裝成功后,再進(jìn)行測(cè)試,就可以看到詳細(xì)信息了。

自此,大功告成,現(xiàn)在可以自己再寫個(gè)數(shù)組越界的bug,再次測(cè)試,就可以發(fā)現(xiàn)已經(jīng)可以確定Bug行數(shù)了。
2. 當(dāng)然你可以手動(dòng)上傳符號(hào)表
請(qǐng)參考符號(hào)表獲取方法。




