星的天空的博客

种一颗树,最好的时间是十年前,其次是现在。

0%

iOS crash文件符号化

carsh文件符号化需要symbolicatecrash脚本、.crash文件、产生crash的app对应的.dSYM文件。脚本可以通过.dSYM文件对.crash文件进行格式化。

资源准备

查找symbolicatecrash脚本

执行命令:find /Applications/Xcode.app/ -name symbolicatecrash, 返回

1
2
3
4
/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

找到四个结果,随意使用一个即可,这里使用:/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修复。