确认Xcode的环境
/usr/bin/xcode-select -print-path
结果应该是:
/Applications/Xcode.app/Contents/Developer/
如果结果不是上述的路径,则指定一下路径:
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/
准备好解析堆栈符号的工具:symbolicatecrash
以Xcode4.6版本为例,执行:
find /Applications/Xcode.app -name symbolicatecrash -type f
将会返回:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash
需要先配置好DEVELOPER_DIR,否则会报错。如下:
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer/
开始解析
准备好dSYM文件和app文件,可以存放在任何位置,只要mac系统的spotlight能够找到就行。
接着执行
symbolicatecrash xxx.crash
或者
symbolicatecrash xxx.plist
就可以解析符号了。
找不到符号的解决方法
Xcode找符号文件的时候,是通过mdfind来找的,所以先使用mdfind来确认你的符号文件能够被找到
mdfind 'com_apple_xcode_dsym_uuids = *'
该命令会把当前环境下的所有符号文件找出来,如果你的符号文件不在此列表中,那么就在执行symbolicatecrash的时候显式指定dSYM文件的路径:
symbolicatecrash xxx.crash xxx.dSYM