查找symbolicatecrash:
打开终端输入以下命令:
find /Applications/Xcode.app -name symbolicatecrash -type f
你会找到:
/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash
切换到桌面的Crash目录下: cd ~/Desktop/crash1
./symbolicatecrash /Users/guangzhoutuosheng/Desktop/crash/crash-report-mkt\ copy-1.txt /Users/guangzhoutuosheng/Desktop/crash/mktcopy.app.dSYM > Control_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。这个文件就能用于分析了。
获取app UUID
命令:dwarfdump --uuid YourApp.app.dSYM
使用dwarfdump检查dSYM和app是否匹配
搞iPhone开发就要不停地发版本,随之而来的就是各种版本的crash log。如果不能好好地管理,那么开发人员很快就会在crash log和版本的海洋里迷失方向。
MAC上有个免费的小工具——dwarfdump,可以简便地检测出app和相应的dSYM。
使用起来很简单。分三步即可。
1> 根据crash log,得到App的UUID。UUID是个字符串,由32个字符组成。得到了UUID,你才能知道是你的哪个版本在用户的iPhone上出了问题。
2> 使用dwarfdump检查app,看哪个app是上面那个UUID。命令行格式:
dwarfdump --uuid YourApp.app/YourApp
3> 用dwarfdump检查dSYM文件是否是上面的UUID。命令行格式:
dwarfdump --uuid YourApp.app.dSYM
如果三者的UUID都是一致的,那么恭喜你,该crash log可以被正确解析出来,stack traces信息可以被正确地拿到。