1)在Xcode中查找symbolicatecrash工具,可以用/usr/bin/xcode-select-print-path命令查看当前Xcode路径,如果和你最新装的Xcode路径不匹配的话,可以用sudo /usr/bin/xcode-select -switch /path【path->Xcode路径】修改你的Xcode系统路径
2)查找symbolicatecrash:find/Applications/Xcode.app -name symbolicatecrash -type f获取路径
3)准备symbolicatecrash、MyAppName.app、MyAppName.app.dSYM三个文件,这里要注意:MyAppName.app、MyAppName.app.dSYM与你要解析的log文件必需要一致。
把三文件放到一个文件夹下面。当然你可可以把symbolicatecrash拷贝到/usr/local/bin/目录下面。
4)cd到上面的文件夹下,运行命令:./symbolicatecrash output.txt xxx.crash MyAppName.app MyAppName.app.dSYM
5)输出文件output.txt就可以查看崩溃的信息了
6)如果采用上述方法还是解析不出来,则可以利用gdb来解析:
方法如下:还是在.app,和.dSYM目录下,
打开终端,输入:
/Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gdb/gdb-arm-apple-darwin 打包的.app/MyApp
要想显示在哪个类,哪一行,则使用:
(gdb) set print symbol-filename on (gdb) p/a 0x0002b0ee【你要查看的内存地址,运气好的话可以指定到代码的哪一行噢】
PS:查看.app,和.dSYM与崩溃日志是否一致的方法:
输入命令:
dwarfdump ‐‐uuid MyApp.app/MyApp
返回内容:
UUID: E2D9D241‐37D3‐CE06‐7272‐653B813963E2 (armv6) MyApp.app/MyApp
输入命令:
dwarfdump ‐‐uuid MyApp.app.dSYM
返回内容
UUID: E2D9D241‐37D3‐CE06‐7272‐653B813963E2 (armv6)MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
对比结果是否一致.