iOS 使用symbolicatecrash分析crash文件
首先,在桌面建一個文件夾crash,接著需要準備4個文件:
其實只要三個就可以了(
xx.crash、xxx.app.dSYM、symbolicatecrash文件)
然后用symbolicatecrash命令合成xx.crash、xxx.app.dSYM即可。
1、崩潰日志.crash:Xcode->Window->Devices,選中設備,點擊View Device Logs,然后可以看到好多日志,你可以根據(jù)時間來判斷需要導出哪個日志,選中一個crash日志,右擊選擇Export log,然后就可以導出日志為aaa.crash,復制到crash文件。(如果有其他xx.log文件,直接將后綴改成xx.crash即可)
2、xxx.app.dSYM文件:Xcode->Window->Organizer,打到之前的ipa文件,右擊Show in Finder,可以看到XXX.xcarchive文件,右擊顯示包內(nèi)容可以看到一個名字dSYMs的文件里面會有一個xxx.app.dSYM文件,復制到crash文件。
3、.app文件:找到導出的xxx.ipa文件,右擊->打開方式->歸檔實用工具,然后看到一個名為Payload的文件,把里面的app文件復制到crash文件。
4、symbolicatecrash路徑:
Xcode7.3 以前symbolicatecrash路徑
/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash
或者 在應用程序里找到Xcode->顯示包內(nèi)容可以找到Contents文件,把symbolicatecrash復制到crash文件。
Xcode7.3symbolicatecrash路徑
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
更新Xcode版本可能會出錯:
can't find tool named 'otool' in the macosx SDK or any fallback SDKs at /Users/xxx/Desktop/crash/symbolicatecrash line 121.
解決方法是:在終端運行如下命令,找到symbolicatecrash這個的新路徑
find /Applications/Xcode.app -name symbolicatecrash -type f
然后,打開終端,到crash文件目錄下cd crash文件路徑(可以直接把文件拖到終端,就可以看到crash的路徑)
接著輸入./symbolicatecrash /Users/本機用戶名/Desktop/crash/aaa.crash / Users/本機用戶名/Desktop/crash/xxx.app.dSYM > new_symbol.cash,其中本機用戶名和文件名稱自己替換*
1 ./symbolicatecrash 這個也可以直接把symbolicatecrash這個工具直接拖到終端來查看路徑
2 /Users/haoshiqi/Desktop/crash/haoshiqi.crash這個是aaa.crash(以本例為例) 的文件路徑,直接拖到終端就可能看到文件路徑
3 / Users/haoshiqi/Desktop/crash/Haoshiqi.app.dSYM這個是xxx.app.dSYM(以本例為例),同樣拖到終端就可以看到文件路徑
[x] 運行完上面這句可能會出現(xiàn)以下問題:Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 60.
[x] 解決方法是輸入以下命令:(xcode-select --print-path 可以找到DEVELOPER_DIR)
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
[x] 再接著輸入./symbolicatecrash /Users/本機用戶名/Desktop/crash/aaa.crash / Users/本機用戶名/Desktop/crash/xxx.app.dSYM > new_symbol.cash
[x] 最后在aaa.crash文件中就多了個new_symbol.cash文件,這個就是解析后的crash文件