0. 准备好 .dSYM
首先,准备好需要解析的 .crash 文件,以及 .crash 文件所对应的 .dSYM 文件:
- .crash
- .dSYM
1. 配置 Xcode 的解析工具 symbolicatecrash
Xcode 7.3 的 symbolicatecrash 路径为:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
Xcode 其他版本:
/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKit.framework/Versions/A/Resources
/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources
可以直接将 symbolicatecrash 拷贝到的 .crash 文件所在路径,也可以像笔者这样建立软连接,方便下次使用:
建立软连接
ln -s /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /Users/waterforest/bin/symbolicatecrash
PS:
/Users/waterforest
是笔者的用户路径,请换成自己的用户路径。建立软连接时,需要使用绝对路径,否则会遇到Too many levels of symbolic links
的错误。
export PATH
编辑 ~/.bash_profile(笔者用的是 zsh,所以这里编辑的是 ~/.zshrc),在末尾添加:
export PATH="$HOME/bin:$PATH"
2. 配置环境变量 DEVELOPER_DIR
如果不配置 DEVELOPER_DIR,你会在执行 symbolicatecrash 时遇到如下错误:
Error: "DEVELOPER_DIR" is not defined at /Users/waterforest/bin/symbolicatecrash line 69.
临时方法:
打开终端,输入命令:
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
永久方法:
- 编辑 ~/.bash_profile(笔者用的是 zsh,所以这里编辑的是 ~/.zshrc),在末尾添加:
# Add environment variable DEVELOPER_DIR
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
- 重启终端 或者 source 第一步中修改的配置文件
source ~/.bash_profile
source ~/.zshrc
3. 查看 .dSYM 文件的 UUID
dwarfdump --uuid Weibo.app.dSYM
4. 查看 .crash 文件的 UUID
5. 解析 .crash 文件(符号化)
如果 .crash 文件的 UUID 与 .dSYM 文件的 UUID 一致,就可以开始解析 .crash 文件了。
命令格式如下:
symbolicatecrash [.crash 文件] [.dSYM文件] > [输出文件]