Crash日志符号化

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

相关文章
相关标签/搜索