歡迎大家一起交流 QQ群 139852091
開篇:(廢話篇)
今天線上的版本出現(xiàn)了BUG,在啟動APP的時候出現(xiàn)閃退情況,但是這種BUG在正常測試的時候沒有測試到,怎么解決呢
友盟推送是大家常見的一個第三庫了,友盟統(tǒng)計,友盟推送,友盟分享等等
我們就根據(jù)友盟統(tǒng)計錯誤分析來查找一下bug出現(xiàn)在哪里
直奔主題:
登陸友盟官網(wǎng)找到友盟統(tǒng)計,找到你iOS平臺下你所屬的APP(圖1)
點(diǎn)擊進(jìn)去會出現(xiàn)當(dāng)日錯誤列表,選擇你發(fā)生錯誤的日期(圖2)
我們可以看到,這一天中出現(xiàn)了兩個錯誤,每個錯誤出現(xiàn)在不同的時間點(diǎn),最多的,最嚴(yán)重的達(dá)到了18次,我們點(diǎn)擊看一下這是個什么錯誤:(圖3-圖4)
在圖4中我們可以得知 iPhone 6 的手機(jī),iOS8.1.1的系統(tǒng)發(fā)生錯誤,然后我們主要看圖3,圖3是什么呢,一堆指針,完全看不懂啊,這會,我們就要借助工具幫我們翻譯一下,到底那里出現(xiàn)了錯誤。
里面有很詳細(xì)的文檔說明,但是下載鏈接已經(jīng)失效不能使用了,我把一個能用的上傳到QQ群文件里,QQ群 139852091
下載后是一個.app文件,可以直接打開使用的(圖5)
打開后的界面如下圖:(圖6)
第一項需要一個DSYM文件,什么是DSYM文件呢,上面的鏈接說很清楚(圖7)
DSYM文件路徑如下
/Users/<你的電腦用戶名>/Library/Developer/Xcode/Archives
文件一一對應(yīng)命令如下
1.查看 xx.app 文件的 UUID,terminal 中輸入命令 :
dwarfdump --uuid xx.app/xx (xx代表你的項目名)
2.查看 xx.app.dSYM 文件的 UUID ,在 terminal 中輸入命令:
dwarfdump --uuid xx.app.dSYM
3.crash 文件內(nèi)第一行 Incident Identifier 就是該 crash 文件的 UUID。
我名沒有執(zhí)行文件一一對應(yīng)的步驟,只要知道你出BUG的DSYM文件是那個即可
DSYM文件的UUID,Slide Address都是在友盟上可以找到的,如下圖(分別對應(yīng)圖8<1><2>標(biāo)注)
錯誤信息指針信息是顏色不一樣的指針地址像圖8<4-5>那樣
需要注意的是我們需要在工具中選擇archive類型,對應(yīng)圖8中<1><2>之間的 cpu Type(需要點(diǎn)擊剛剛拖拽的DSYM文件圖9)
接下來就可以點(diǎn)擊分析了分析結(jié)果如下(圖10)
分析指出GD3DTouchManager.m文件的第55行代碼出現(xiàn)問題,我的這個是3DTouch文件,因為3DTouch是iOS 9 新出現(xiàn)的API,報錯的時iOS8.1.1,所以出現(xiàn)閃退顯現(xiàn),然后我修復(fù)一下,找到一個iOS8.1.1的機(jī)器測試發(fā)現(xiàn)可以了
結(jié)束語:
我的初中生物老師告訴我,人和動物最大的區(qū)別是使用工具和制造工具,感謝工具制造者,也希望本文可以幫助到你
參考與感謝
如何通過友盟分析發(fā)布后App崩潰日志 - 容芳志專欄 - 博客頻道 - CSDN.NET
歡迎大家一起交流 QQ群 139852091