2018.4.22
自動解析
借助第三方平臺,我選擇的是鵝廠出品的Bugly,老老實實地按照文檔去配置好你的工程,特別是符號表的配置,那就一切OK了,發生Crash的時候,去后臺看,對應的crash信息都是已經自動符號化完成了的。Bugly iOS 符號表配置
手動解析
1.崩潰日志.crash
導出
方式一,打開Xcode >
Window
>Devices and Simulators
> 選擇相應的設備 >View Device Logs
> 找到相應的crash log >Export Log
保存到桌面
方式二,打開Xcode >Window
>Organizer
>Crashes
> 找到相應的log,點擊Show in Finder
,打開多層文件夾,然后找到相應的.crash
文件,復制到桌面. (一般情況下,此處的信息是已經被符號化過的,可以直接查看到具體崩潰信息的,無需額外手動解析了)
方式三,應用審核時發生的Crash,像我悲催的遇到了,AdHoc版本沒問題,AppStore版本就是會崩潰,真是簡直了;將審核反饋信息中附帶的.txt
下載到桌面,改變后綴為.crash
2.符號表文件.dYSM
導出
注:
.dSYM
文件是iOS編譯后保存16進制函數地址映射信息的文件,每次應用程序build
后,都會生成對應的xxx.app
,xxx.app.dSYM
文件,不過前提是,你沒有亂搞你的工程配置;在工程配置中設置生成.dSYM文件 ,Build Settings -> Debug information format -> 選DWARF with dSYM File ,打包時就會生成dSYM文件
方式一,獲取.archive
文件,前往文件夾/用戶/用戶名/資源庫/Developer/Xcode/Archives
-> 找到目標build
版本對應的.archive
文件 > 顯示包內容,找到其中的xxx.app.dSYM
文件,復制到桌面
方式二,如果已經成功上架商店了,那么可以選擇,打開Xcode >Window
>Organizer
>Archives
> 選擇正確的Build
版本,右邊信息欄點擊Download dYSMs...
下載文件到桌面
方式三,從iTunes Connect網站下載dSYM文件,1. 打開App Details頁面。2. 點擊活動。3. 從所有版本列表中選擇一個版本。4. 點擊**下載dSYM**鏈接。
Technical Note TN2151 反正我到現在也沒找著那個所謂的下載鏈接了,ok,我承認我很笨 = = 。
3.腳本文件symbolicatecrash
導出
Xcode 7及之前的版本應該是,前往文件夾
用戶/用戶名/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources
Xcode 7之后的版本是,用戶/用戶名/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources
當然,也可以直接在應用文件夾中找到Xcode.app
顯示包內容,手動進到Resources
文件夾了
復制symbolicatecrash
腳本文件到桌面
4.手動解析.
現在我們有了
.crash
日志文件,.dYSM
符號表文件,以及symbolicatecrash
腳本文件,新建一個文件夾,隨意命名為crashAnalysis
,將3個文件都拖入其中;
command
+空格
打開spotlight
,輸入ter
打開終端,終端中輸入cd
+空格
,將crashAnalysis
拖入終端以自動補充文件路徑,點擊回車;即,進入到桌面crash文件夾中
終端中繼續輸入命令:進行crash日志解析
./symbolicatecrash xxx.crash的文件路徑 xxx.app.dSYM的文件路徑 > log.crash
如果終端報錯:
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
輸入:
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
然后再輸入:進行crash日志解析
./symbolicatecrash xxx.crash的文件路徑 xxx.app.dSYM的文件路徑 > log.crash
現在,
crashAnalysis
文件夾中會新增文件log.crash
,這個就是已經符號化完成了的日志文件了。那么,江湖再見咯~
參考鏈接:我怎么可能那么聰明,沒有參考鏈接就能搞的定呢~
1.iOS crash報告符號化,.ips文件分析
2.Bugly,手動生成符號表的步驟
3.iOS通過dSYM文件分析crash
4.Where is located symbolicatecrash in Xcode 8?