天天看点

使用 symbolicatecrash 解析崩溃堆栈

确认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