查看uuid
查看dSYM文件的uuid
xcrun dwarfdump --uuid *.dSYM
查看app的uuid
xcrun dwarfdump --uuid *.app/*
查看crash文件的uuid
在crash文件中找到Binary Images:怀挠,其下面的第一行類似于下面代碼
0x102e80000 - 0x10393ffff test arm64 <9f95e773509e32d2802b336adfbb6794> /var/containers/Bundle/Application/DFD0CD37-F4A6-4F4E-BA1D-638FC53F1C31/test.app/test
尖括號中的就是uuid
debug生成dSYM文件
XCode Release編譯默認會生成dSYM文件析蝴,而Debug編譯默認不會生成,對應的Xcode配置如下:
XCode -> Build Settings -> Code Generation -> Generate Debug Symbols -> Yes
XCode -> Build Settings -> Build Option -> Debug Information Format -> DWARF with dSYM File
配置symbolicatecrash
通過下面命令行查找symbolicatecrash路徑
find /Applications/Xcode.app -name symbolicatecrash -type f
在輸出找到中的symbolicatecrash命令
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
然后執(zhí)行下面命令绿淋,將symbolicatecrash拷貝到目錄/usr/bin/下面
sudo cp /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /usr/bin/symbolicatecrash
執(zhí)行上面命令有時會報錯提示沒有權限闷畸,這時候通過csrutil status命令查看是否是開啟了SIP(System Integrity Protection),一般會在OSX 10.11以后版本遇到
輸入csrutil status命令后吞滞,會輸出
System Integrity Protection status: disabled
status為enable表示開啟了SIP佑菩,disabled表示關閉了。
如果開啟了SIP怎么關閉呢冯吓?
首先重啟電腦倘待,在啟動過程中同時按住command和加號鍵進入恢復模式,進入后可能會讓你選擇語言组贺。進入恢復模式后凸舵,在里面選擇“實用工具”進入“終端”,輸入csrutil disable命令即可關閉失尖,然后重新啟動電腦啊奄。
重新將symbolicatecrash拷貝到/usr/bin下
在~/.bash_profile文件中加入
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
并執(zhí)行source ~/.bash_profile讓更改立馬生效
符號化crash文件
symbolicatecrash test.dSYM test.app/test > symbol.crash