1.符號化crash日誌須要3樣東西:ios
1).crash日誌自己(如:example.crash),從Xcode的organizer導出或者來自Itunes Connect.xcode
2).crash日誌所對應的.app包(如:example.app)若是你有的是.ipa包,你能夠解壓後在Payload/文件夾下得到.app包app
3).crash日誌多對應的.dSYM包iphone
2.開始符號化以前,先檢查一下以上3樣東西是否相對應(UUID):ui
crash日誌中能夠看到相似一下內容:spa
... Binary Images: 0xe1000 - 0x1f0fff +example armv7 <aa5e633efda8346cab92b01320043dc3> /var/mobile/Applications/9FB5D11F-42C0-42CA-A336-4B99FF97708F/example.app/example 0x2febf000 - 0x2fedffff dyld armv7s <4047d926f58e36b98da92ab7a93a8aaf> /usr/lib/dyld ...
說明,這個二進制鏡像名爲 example.app/example,UUID爲 aa5e633efda8346cab92b01320043dc3 .
.net
能夠用如下命令檢查.app的UUID:3d
dwarfdump --uuid example.app/example UUID: AA5E633E-FDA8-346C-AB92-B01320043DC3 (armv7) example.app/example
檢查.dSYM文件的UUID:日誌
dwarfdump --uuid example.app.dSYM UUID: AA5E633E-FDA8-346C-AB92-B01320043DC3 (armv7) example.app.dSYM/Contents/Resources/DWARF/example
3.使用symbolicatecrash腳本code
若是是Xcode 6.1,使用:
/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash -v example.crash 2> symbolicate.log
若是找不到該腳本,使用:
find . -name symbolicatecrash
用終端查找和crash日誌中的uuid一隻的符號文件:
mdfind "com_apple_xcode_dsym_uuids == AA5E633E-FDA8-346C-AB92-B01320043DC3"
若是遇到 "DEVELOPER_DIR" is not defined 的報錯,執行如下命令:
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
2.使用終端符號化日誌:
xcrun atos -o MyApp.app/MyApp -arch armv7 -l 0xb7000 -f MyApp.crash
其中0xb7000就是crash日子中緊跟"Binary Images:"後面的地址
參考:
http://support.hockeyapp.net/kb/client-integration-ios-mac-os-x/how-to-solve-symbolication-problems
http://stackoverflow.com/questions/1460892/symbolicating-iphone-app-crash-reports