说明一下,symbolicatecrash是一个可以独立使用的错误日志分析工具。
虽然iPhone连着Xcode的时候可以直接查看设备Logs,但是更多的崩溃情况是发生在我们在分发了ipa之后(无论是测试还是上架)。因此,如果我们有幸从用户手中拿到了Logs,那么此时symbolicatecrash就可以大显神威了,它能够将错误日志转化成我们可读的形式。
symbolicatecrash不出意外,也是用到了Mapping方式来替换标记。
(1)在桌面创建一个Crash文件夹
(2)找到symbolicatecrash
打开终端输入以下命令: find /Applications/Xcode.app -name symbolicatecrash -type f
你会找到: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/./symbolicatecrash
因为symbolicatecrash可以独立使用,因此我们可以把它复制到Crash文件夹(此处可能涉及权限,如果涉及权限请使用sudo)
cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash /Users/angel/Desktop/Crash
(3)从Organizer中获取.app、.app.dSYM文件,也放到Crash文件夹中
(4)切换到桌面的Crash目录下: cd ~/Desktop/Crash
执行命令 ./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash
这时候终端有可能会出现:Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 60
输入命令:export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
再执行./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash 这时候终端将会进行处理了
处理结果是生成一个新的文件symbol.crash。这个文件就能用于分析了。
(5)symbol.crash
注意一点,用户返回的数据有时候会多一些头或者尾之类的,比如iTools导出的crash文件,就在头部多了一些东西。
这些多余的数据还是去掉比较好,可能会影响处理。