
沒有不會crash的app包括微信
沒有不會crash的程式碼即使正常執行千年
只要有會看crash的程式猿
這一週是在不同的crash日誌分析中度過的,公司的4個專案依次出現不同程式的隨機崩潰。並且出現了非常多的靈異事件,即使看到了現象程式猿(!_! ME)也很難相信這是真的(想逃避)。當赤裸裸的現象一次又一次出現,直接導致手心出汗,精神失常(對於10年開發的我是致命的羞辱)。拿出斧頭開始啃著“天外來客”。
考慮篇幅和閱讀時長的習慣,在此略過以下內容:
- crash檔案採集的具體步驟。
- crash檔案中內容的含義解釋。
- crash檔案中崩潰種類的說明。
- dsym檔案的來源和作用。
- crash中崩潰地址的手動解析的方法。
- 等等可以百度的內容。
記錄下怎麼圖形化一步還原崩潰地址為可讀程式碼的方法。
一、 Xcode還原法
最簡單的方法是,提交app到app store的時候使用Xcode直接提交併且勾選上傳dsym。如圖


二、 友盟還原法
1. 檢視崩潰
使用友盟統計的功能也包含crash的採集,並且crash日誌會在app重啟後立刻上傳,時效性較好。


2. 檢視dsym檔案
需要上傳崩潰檔案對應的dsym,此時需要先檢視崩潰日誌對應的UUID



3. 上傳dsym檔案
到友盟iOS專案,選擇"應用設定"後,選著左邊的“符號表管理”,再點選“上傳符號表檔案”

4. 檢視符號的崩潰呼叫棧
已經完美的完成解析了。如果你找到了對的dSYM檔案的話,不然就SO SO SO (無能為力)

DONE
三、 SYM工具還原法
推薦dSYM的解析工具 SYM. 此方法針對從裝置上獲取crash檔案後解析,使用非常給力。
1. 裝置獲取crash檔案
連線裝置到電腦後,開啟Xcode選擇Window下Devices and Simulators


2. 查詢UUID
在崩潰日誌中搜尋“Binary Images”,會看到app的名稱,旁邊的就是UUID了。

3. SYM分析
開啟SYM app後,(1)將崩潰日誌複製到內容中。(2)選擇UUID對應的dSYM檔案。 (3)點選執行按鈕。

檢視紅色的就是解析完成的,並且準確無誤。GOOD。
後記
可能你沒看懂,沒關係請多看幾遍。 如果對crash還是沒了解,沒關係再百度下。 也許你會推薦“DSYMTools”這個工具,我也一直用了5年,一直都很好用。只是最近分析出的內容不準確。所以建議你試試我介紹的方法。 另外再強調一點使用第三方庫請慎重。
補充一句
Android在友盟上也一樣可以進行崩潰地址的解析,同樣上傳mapping檔案就可以實現。
// END 2018-11-30 每天進步一點點