监测crash的三方平台Bugly 等支持解析Crash日志,但是要你提供dsym符号表;
所以每次打包的dsym表要保存,便于查找crash定位。
虽然各个平台都支持直接解析crash日志,但是手动解析的也要了解一下。
1.在桌面新建个一个文件夹 temp
2.这里要用到xcode自带的工具 symbolicatecrash 工具,这个工具的位置可以找到,通过下面命令
find /Applications/Xcode.app -name symbolicatecrash
搜索后的结果是
/Applications/Xcode.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
分别对应不同平台的。
3.复制 symbolicatecrash 到 刚才新建的文件夹 temp
把对应的Crash 日式 复制到 temp 文件夹
5.把 对应的 dsym符号表 复制到 temp 文件夹
cd 到该temp 目录下
运行 symbolicatecrash 工具
./symbolicatecrash crash日志 ***.dSYM > symbol.txt
第6部报错
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
使用下面命令即可
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
然后打开 symbol.text 就是解析后的文件 就可以定位到具体的位置.
查看符号表对应的uuid
xcrun dwarfdump --uuid <dSYM文件路径>