前言
項(xiàng)目開發(fā)時(shí), 遇到崩潰問題, 可以通過控制臺(tái)log看到調(diào)用堆棧, 從而找到問題所在, ?但上線項(xiàng)目如何解決App閃退那? ?那么, 作者現(xiàn)在就聊聊這個(gè)問題.
一 iTunes Connect 中的 [App分析]
直接上傳送門 :?如何查看iOS已上架app崩潰分布、定位crash發(fā)生的行 - 簡書
已經(jīng)寫的很清楚了, 作者不再復(fù)述, 說下該方法的限制 : 需要用戶手機(jī)設(shè)置->隱私->診斷與用量->診斷與用量數(shù)據(jù)(iOS8以下版本在通用中設(shè)置) 選擇自動(dòng)發(fā)送. 這樣才可以獲取到Crash日志, 如未開啟將獲取不到數(shù)據(jù), ?所以該方法數(shù)據(jù)獲取的不全面.?
二 程序內(nèi)部實(shí)現(xiàn)Crash日志
該方法 作者未使用過, 具體效果未驗(yàn)證, 傳送門 :?經(jīng)營你的iOS應(yīng)用日志(一):開始編寫日志組件 - alario - 博客園
三 第三方實(shí)現(xiàn)Crash日志
如 友盟移動(dòng)統(tǒng)計(jì) Mob移動(dòng)統(tǒng)計(jì) 百度移動(dòng)統(tǒng)計(jì) 等第三方實(shí)現(xiàn)Crash日志收集與分析.?
作者使用過 友盟 和 百度. 簡單說下 :?
1)百度在3.6后 新增[自動(dòng)監(jiān)控模式] ,集成是只需要在?
- (void)viewDidLoad
中 寫入 self.title命名就行,?
2)友盟, 集成需要在
-(void)viewWillAppear:(BOOL)animated
-(void)viewWillDisappear:(BOOL)animated
中寫入 友盟對(duì)應(yīng)語句

詳解 : 用友盟詳細(xì)說明一下
1. 進(jìn)入友盟 個(gè)人中心 -> 錯(cuò)誤分析 -> 錯(cuò)誤列表 -> 點(diǎn)擊列表中錯(cuò)誤進(jìn)入界面

2. 點(diǎn)擊 右上角 進(jìn)入 [報(bào)表中心] 下載該錯(cuò)誤. ?將 友盟Crash分析工具與下載的錯(cuò)誤報(bào)表放同一文件夾中, ?打開 終端 , 先拖入友盟Crash分析工具 再拖入 錯(cuò)誤報(bào)表 , 按回車.?
終端 運(yùn)行完成后 , 會(huì)顯示錯(cuò)誤的位置與行數(shù)

傳送門 :?友盟統(tǒng)計(jì)分析文檔
友盟分析錯(cuò)誤 只定位到方法, 也就是說 235行對(duì)應(yīng)的是方法, ? 但是具體是方法中哪句代碼有問題, 需要自己仔細(xì)分析.
補(bǔ)充結(jié)合 : 有需求就有解決, ?answer_huang - ?iOS developer,Python fans? 封裝了一個(gè)應(yīng)用, 可以解決該問題.
使用步驟:
1.將打包發(fā)布軟件時(shí)的xcarchive文件拖入軟件窗口內(nèi)的任意位置(支持多個(gè)文件同時(shí)拖入,注意:文件名不要包含空格) PS. 位置 : /Users/用戶名/Library/Developer/Xcode/Archives
2.選中對(duì)應(yīng)版本的xcarchive文件,右邊會(huì)列出該xcarchive文件支持的CPU類型,選中錯(cuò)誤對(duì)應(yīng)的CPU類型。
3.對(duì)比錯(cuò)誤給出的UUID和工具界面中給出的UUID是否一致。
4.將錯(cuò)誤地址以及 Slide Address 輸入工具的文本框中,點(diǎn)擊分析。
dSYM分析工具 傳送門 :GitHub - answer-huang/dSYMTools: dSYM analyze
如果好用, 請(qǐng)給answer_huang點(diǎn)個(gè)star. 感謝他的分享.
舉例 : ?對(duì)應(yīng) 上面友盟?錯(cuò)誤詳情?截圖, 將 dSYM的UUID, 首次錯(cuò)誤內(nèi)存地址, Slide Arrdress, CPU Type 填入該應(yīng)用中

可以看到錯(cuò)誤定位 在 240行, 為方法中的具體代碼, 分析錯(cuò)誤類型, 對(duì)比代碼, 解決問題 .
App上線后, 程序Crash的收集, 分析, 處理方案介紹完.?
以上 !