之前碰到的程序崩溃直接在xcode的运行崩溃断点就能定位,进而解决。这次公司迭代新版本,被驳回说是启动就挂,真实奇怪。他们也给了崩溃日志,这篇文章就记录下符号化.crash文件的方法,以便以后能够用到不至于在百度、谷歌。
一、找到.app和.app.dSYM
在桌面创建一个crash文件夹,然后Xcode->Window->Organizer找到Archives找到App->右击Show in Finder
复制.app和.app.dSYM到crash夹文件:右击.xcarchive文件->显示包内容
在dSYMs文件夹中找到.app.dSYM
在Products->Applications文件夹中找到*.app
二、找到symbolicatecrash
找到symbolicatecrash的目录
在终端输入以下命令
find /Applications/Xcode.app -name symbolicatecrash -type f
等一会才出现结果
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
用命令将symbolicatecrash拷贝到桌面的crash文件夹里面,与.app和.app.dSYM放一起(手动找到symbolicatecrash,拷贝出来也行)
cp /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /Users/你的电脑名称/Desktop/crash
将Crash文件也拷到当前文件夹里面(*.crash文件导出,参考最下面)
三、执行symbolicatecrash
打开终端用命令切换到桌面的crash目录下:
cd /Users/你的电脑名称/Desktop/crash
执行命令
./symbolicatecrash /Users/angelseahappiness/Desktop/crash/Control_2014-01-13-111838_Lynns-iPad3.crash /Users/angel/Desktop/crash/Control.app.dSYM > Control_symbol.crash
这时候终端有可能会出现:
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 60.
输入命令:
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
再执行
./symbolicatecrash /Users/angelseahappiness/Desktop/crash/Control_2014-01-13-111838_Lynns-iPad3.crash /Users/angel/Desktop/crash/Control.app.dSYM > Control_symbol.crash
这时候终端将会进行处理了
将终端完成以后,在crash文件夹里面会多出一个文件Control_symbol.crash:这个就是最终的文件,可以查看bug所在的
通过Xcode查看设备崩溃信息
除了上面的系统分析工具来进行分析,如果是我们自己直接使用手机连接崩溃或者崩溃之后连接手机,选择window-> devices -> 选择自己的手机 -> view device logs 就可以查看我们的崩溃信息了。
view device logs
只要手机上的应用是这台电脑安装打包的,这样的崩溃信息系统已经为我们符号化好了,我们只需要进去之后等一会就行(不要相信这里面的进度刷新,并不准确),如果还是没有符号化完毕 ,我们选择文件,然后右击选择Re-Sysbomlicate就可以。
如果是使用其他电脑进行的打包,我们可以在这里面将Crash文件导出,自己通过命令行的方式进行解析。
原文://www.greatytc.com/p/e66fc953a0d6