Symbolicatecrash是Xcode自带的一个分析工具,可以通过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把crash日志中的地址替换成代码相应位置。
找出隐藏的symbolicatecrash工具
通过终端找出 symbolicatecrash 的路径 然后通过 cp 命令,或者直接到文件夹下拷贝出来,与crash文件和dSYM文件(注意:crash文件要对应产生这个crash的dSYM文件哦)放到同一个目录下。然后执行输出 log文件。代码步骤如下:
//查找symbolicatecrash位置
find /Applications/Xcode.app -name symbolicatecrash -type f
//拷贝到/Dowlaods/test/目录下,我只是举个例子,你方便放哪就放哪
cp /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash /Dowlaods/test/symbolicatecrash(这个路径不要直接拷贝哦~汗~~)
//然后进入刚刚拷贝到的目录
cd /Dowlaods/test/
//输出log xxx.crash是你的错误crash文件 ,xxx.dSYM是对应的dSYM文件
./symbolicatecrash xxx.crash xxx.dSYM > error.log
//可能在这提示你"DEVELOPER_DIR" is not defined at ./symbolicatecrash xxx 不用慌张~执行下面这行,然后再执行一次上面输出log的操作就OK啦~~
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
查看error.log 文件就知道项目运行到哪崩溃啦~~
知识补充:
.dSYM获取:Xcode -> Window -> Organizer
选择你项目的Archives
,选中对应构建的版本,右键 show in Finder
。这时候 窗口就会来到 你之前构建的 .xcarchive
文件位置中。然后右键显示包内容,来到dSYMs目录下找到 你项目名字.dSYMs
。
.crash文件获取:上架后可以在上面.dSYM方式类似 ,Xcode会自动同步Crash,选择 Crashes
,同样是显示包内容找到.crash 文件即可。或appstore拒绝上架的时候会附带在拒绝内容中。