在開發程序中往往會遇見有個別用戶或者測驗人員反饋app的閃退現象,而專案一般集成的統計閃退的第三方庫是籠統的統計了所有的閃退資訊,無法去定位某一個用戶提出的某一個時間點的某一個閃退問題,于是乎這個時候需要我們能快速的去獲取指定用戶提出的指定閃退,并能夠決議閃退日志,快速的定位到問題,下面將自己的做法大概的做個總結(可能還有別的方法,但是我覺得下面講述的方法已經足夠了),
一、收集閃退日志
先和用戶確定iPhone是否打開如下設定(以iOS12.0的iPhone為參考):
設定->隱私->分析->共享iPhone分析->與應用開發者共享
只有打開了上述設定閃退日志才會被收集,然后進入設定->隱私->分析->分析資料,找到以自己專案開頭拼接出現閃退大致時間點檔案名的ips檔案,

二、決議閃退日志
1.如果還能找到用戶反饋有問題的app 當時打包時相對應的專案原始碼,那么就很簡單了
獲取到的.ips檔案雙擊打開是沒有決議的日志,現在需要修改后綴名為.crash,然后雙擊打開出現下面的彈窗

可以選中當時打包的專案,預覽并且打開,這時候你會發現打開后的專案會顯示閃退的地方,

沒錯,就是這么簡單,不過前提條件是你還有當時打包的專案原始碼,不然要是用當前閃退所在檔案改動過的原始碼,定位的位置是不對的,
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/4163.html
標籤:iOS
