手动符号化需要下面3个东西
symbolicatecrash 是苹果官方提供的符号化工具。
首先,找到 symbolicatecrash,打开终端输入:
find /Applications/Xcode.app -name symbolicatecrash -type f
出现如下结果,路径可能不同
/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
dSYM 文件在打好的包中:
· 打开 Organizer 面板:Xcode > Window > Organizer
· 选择与崩溃日志版本对应的包,右键 Show In Finder
· 选择 xcarchive 文件,右键 显示包内容
· dSYM 文件就在 dSYMs 文件夹里
Xcode 默认打包时不创建 dSYM 文件,需要在 Build Settings 设置 Debug Information Format 为 DWARF with sSYM File(如下图),否则 dSYMs 文件夹是空的。
查看 dSYM 文件的 uuid,终端输入下面的命令
dwarfdump --uuid dSYM文件路径
崩溃日志:
从设备中获取(有时已经是完全符号化状态,可直接查看)
1. 目标设备连接电脑 > 打开Xcode > Window > Devices (快捷键 shift + ⌘ + 2)
2. 选择 View Devices Logs
3. 在列表中选择文件,右键选导出
或者自己实现记录并上传
进行符号化:
在桌面创建文件夹,把 symbolicatecrash、崩溃日志和 dSYM 文件放进去
终端 cd 到创建的文件夹
执行命令
./symbolicatecrash XXXX/XXXX/appName.crash XXXX/XXXX/appName.app.dSYM > customName.crash
补充:
手动解析iOS crash文件时候,会出现这个报错
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
输入下面的命令就可以了
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"