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