IOS程序在真机运行程序出现crash状况时,机器会自动产生log文件,它包含了程序运行时的出错信息,但是这个crash文件显示的是出现问题的内存地址和一些系统的消息,无法查看程序中对应的崩溃地点,如果要查看对应于程序中的出错代码,需要使用symbolicatecrash工具将.dSYM文件和crash日志转换成可阅读的log信息,也就是将内存地址,转换成程序里的函数或变量和所属于的文件名.
1、crash日志文件
2、symbolicatecrash 文件
symbolicatecrash是xcode自带的工具,一般位于/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash目录下,也可以在terminal下使用命令:
find /Applications/Xcode.app -name symbolicatecrash -type f
来查找symbolicatecrash的位置:
3、dysm和app文件
dysm文件存在xcode打包的xcarchive文件中,使用打开xcode的organizer,选择顶部的archives,看到最后的打包记录,在finder中打开,右键查看包内容,里面有我们需要的.dSYM文件及.app文件:
注意,一般情况下,第一次使用symbolicatecrash会产生一个error,如下的错误信息
Error: "DEVELOPER_DIR" is not defined at /usr/local/bin/symbolicatecrash line 53.
解决办法是输入
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"