crash 监测

iOS crash解析

2018-02-26  本文已影响52人  PursueDream

查看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

然后执行下面命令,将symbolicatecrash拷贝到目录/usr/bin/下面

sudo cp /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash  /usr/bin/symbolicatecrash 

执行上面命令有时会报错提示没有权限,这时候通过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"

并执行source ~/.bash_profile让更改立马生效

符号化crash文件

symbolicatecrash  test.dSYM  test.app/test > symbol.crash
上一篇下一篇

猜你喜欢

热点阅读