在開發過程當中每每會碰見有個別用戶或者測試人員反饋app的閃退現象,而項目通常集成的統計閃退的第三方庫是籠統的統計了全部的閃退信息,沒法去定位某一個用戶提出的某一個時間點的某一個閃退問題,因而乎這個時候須要咱們能快速的去獲取指定用戶提出的指定閃退,並可以解析閃退日誌,快速的定位到問題。下面將本身的作法大概的作個總結(可能還有別的方法,可是我以爲下面講述的方法已經足夠了)。html
1、收集閃退日誌xcode
先和用戶肯定iPhone是否打開以下設置(以iOS12.0的iPhone爲參考):app
設置->隱私->分析->共享iPhone分析->與應用開發者共享工具
只有打開了上述設置閃退日誌纔會被收集,而後進入設置->隱私->分析->分析數據,找到以本身項目開頭拼接出現閃退大體時間點文件名的ips文件。測試
2、解析閃退日誌spa
1.若是還能找到用戶反饋有問題的app 當時打包時相對應的項目源碼,那麼就很簡單了3d
獲取到的.ips文件雙擊打開是沒有解析的日誌,如今須要修改後綴名爲.crash,而後雙擊打開出現下面的彈窗日誌
能夠選中當時打包的項目,預覽而且打開,這時候你會發現打開後的項目會顯示閃退的地方。code
沒錯,就是這麼簡單。不過前提條件是你還有當時打包的項目源碼,否則要是用改動過當前閃退所在文件的源碼,定位的位置是不對的。htm
2.不能找到打包時的項目源碼,可是能夠找到當時打包的dSYM文件
具體步驟:
1.首先在桌面新建一個文件夾crashFile,用於存放解析閃退日誌用到的文件。
2.找到前面獲取到的.ips文件,拷貝.ips文件放到crashFile中
3.獲取symbolicatecrash文件。
找到當時打包所用的xcode(可能筆記本安裝了好幾個Xcode),而後進入下面的路徑:/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
拷貝symbolicatecrash工具拷貝到crashFile中
4.獲取dSYM文件
從當時打包的xcode->Window->Organizer->Archives找到當時的xcarchive文件,選中xcarchive文件右鍵點擊【顯示包內容】,拷貝dSYMs文件下的.dSYM文件,放到crashFile中。
至此,crashFile文件中總共有3個文件:.ips文件、symbolicatecrash工具、.dSYM文件。
5. 打開終端,cd到crashFile文件夾中
6. 輸入命令
./symbolicatecrash Agent-2020-02-21-124913.ips Agent.app.dSYM > crash.log
這時候會發現crashFile文件夾下多了個crash.log文件
雙擊打開crash.log文件,你會發現崩潰信息已經成功解析
好了,大功告成!!!
下面將附上參考的地址(能夠驗證閃退的ips文件和dsym文件對應的app是不是同一個):
https://www.cnblogs.com/mukekeheart/p/9449189.html
https://hacpai.com/article/1533042075262
https://www.jianshu.com/p/e5ad706e4196