iOS閃退日志的收集和解析

在開發(fā)過程中往往會遇見有個別用戶或者測試人員反饋app的閃退現(xiàn)象,而項(xiàng)目一般集成的統(tǒng)計閃退的第三方庫是籠統(tǒng)的統(tǒng)計了所有的閃退信息,無法去定位某一個用戶提出的某一個時間點(diǎn)的某一個閃退問題,于是乎這個時候需要我們能快速的去獲取指定用戶提出的指定閃退,并能夠解析閃退日志,快速的定位到問題。下面將自己的做法大概的做個總結(jié)(可能還有別的方法,但是我覺得下面講述的方法已經(jīng)足夠了)。

一、收集閃退日志

先和用戶確定iPhone是否打開如下設(shè)置(以iOS12.0的iPhone為參考):

設(shè)置->隱私->分析->共享iPhone分析->與應(yīng)用開發(fā)者共享

只有打開了上述設(shè)置閃退日志才會被收集,然后進(jìn)入設(shè)置->隱私->分析->分析數(shù)據(jù),找到以自己項(xiàng)目開頭拼接出現(xiàn)閃退大致時間點(diǎn)文件名的ips文件。

image

二、解析ips閃退日志

1.如果還能找到用戶反饋有問題的app 當(dāng)時打包時相對應(yīng)的項(xiàng)目源碼,那么就很簡單了

獲取到的.ips文件雙擊打開是沒有解析的日志,現(xiàn)在需要修改后綴名為.crash,然后雙擊打開出現(xiàn)下面的彈窗

image

可以選中當(dāng)時打包的項(xiàng)目,預(yù)覽并且打開,這時候你會發(fā)現(xiàn)打開后的項(xiàng)目會顯示閃退的地方。

image

沒錯,就是這么簡單。不過前提條件是你還有當(dāng)時打包的項(xiàng)目源碼,不然要是用改動過當(dāng)前閃退所在文件的源碼,定位的位置是不對的。

2.不能找到打包時的項(xiàng)目源碼,但是可以找到當(dāng)時打包的dSYM文件

具體步驟:

1.首先在桌面新建一個文件夾crashFile,用于存放解析閃退日志用到的文件。

2.找到前面獲取到的.ips文件,拷貝.ips文件放到crashFile中

3.獲取symbolicatecrash文件。

找到當(dāng)時打包所用的xcode(可能筆記本安裝了好幾個Xcode),然后進(jìn)入下面的路徑:/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

拷貝symbolicatecrash工具拷貝到crashFile中

4.獲取dSYM文件

從當(dāng)時打包的xcode->Window->Organizer->Archives找到當(dāng)時的xcarchive文件,選中xcarchive文件右鍵點(diǎn)擊【顯示包內(nèi)容】,拷貝dSYMs文件下的.dSYM文件,放到crashFile中。

至此,crashFile文件中總共有3個文件:.ips文件、symbolicatecrash工具、.dSYM文件。

image
  1. 打開終端,cd到crashFile文件夾中

  2. 輸入命令

./symbolicatecrash Agent-2020-02-21-124913.ips Agent.app.dSYM > crash.log

這時候會發(fā)現(xiàn)crashFile文件夾下多了個crash.log文件

image

雙擊打開crash.log文件,你會發(fā)現(xiàn)崩潰信息已經(jīng)成功解析

image

好了,大功告成!??!

下面將附上參考的地址(可以驗(yàn)證閃退的ips文件和dsym文件對應(yīng)的app是否是同一個):

https://www.cnblogs.com/mukekeheart/p/9449189.html

https://hacpai.com/article/1533042075262

http://www.itdecent.cn/p/e5ad706e4196

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容