carsh文件符号化需要symbolicatecrash
脚本、.crash
文件、产生crash的app对应的.dSYM
文件。脚本可以通过.dSYM
文件对.crash
文件进行格式化。
资源准备
查找symbolicatecrash
脚本
执行命令:find /Applications/Xcode.app/ -name symbolicatecrash
, 返回
1 | /Applications/Xcode.app//Contents/Developer/Platforms/WatchSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash |
找到四个结果,随意使用一个即可,这里使用:/Applications/Xcode.app//Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
提取crash
文件
- 连上发生crash的手机,在Xcode的Window -> Devices and Simulator 下,选中发生crash的设备,点击
View Device Logs
按钮 - 找到对应的crash日志,点击右键,选择
Export Log
导出。
不是所有的crash,都能产生crash日志。 没有crash日志只能通过其它方式debug.
提取dSYM
文件
- 如果是xcode上打的包,在Xcode的Window -> Organizer下,选中对应的app
- 选中对应的包,点击右键,选择Show in Finder,找到对应的
.xcarchive
文件 - 点击右键,选择
显示包内容
,在dSYMs文件夹中找到对应的.dSYM
文件
如果使用脚本打包,注意
.dSYM
文件的存档
格式化
- 建立目录,将上述三个文件放入同一个目录
- 进入指定目录,执行
./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash
,会生成格式化的crash
文件。
如果出现报错
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
执行export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
修复。