天天看點

使用 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