最近提交一个工具应用到APPStore,一直因为crash被拒,大苹果拒绝理由非常充分:你的应用使用的过程中有闪退现象,为了更好的帮助你定位问题,附上如下崩溃日志。瞬间蒙逼,就一个简单的工具,几个界面怎么会崩溃呢,自己跟测试都测过没可能发现不了啊,点开crash日志,瞬间石化,这货长这样!
查了一通不行要领,后来知道这东西可以处理成log日志,话不多说开干。
首先桌面建一个文件夹,以次放入以下四个文件,.dSYM文件,.app文件,.crash文件,symbolicatecrash。
.dSYM文件,.app文件搞定。
然后是.crash文件,由于苹果贴的附件是txt文件,直接把txt文件格式改成.crash就可以了,具体过程直接改文件名加上.crash,然后会有弹窗如图:
右选就OK啦。
当然.crash也可以通过xcode导出,
选view Device Logs
最后就是symbolicatecrash文件了
首先打开终端,find /Applications/Xcode.app -name symbolicatecrash -type f 查找symbolicatecrash
选最后一个前往找到文件,放入文件夹。
中间有一点,如果要确认.dSYM文件,.app文件,.crash文件是否匹配,可以能过终端打印uuid来确认。
命令为:
dwarfdump –uuid xxx.app/xxx
dwarfdump –uuid xxx.app.dSYM/ (xxx为app name)
.carsh文件的uuid打开可以直接找到。
一切就绪,开始转换。
cd 到文件夹依次输入命令:
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
./symbolicatecrash a523.crash ECM-iphone.app > 1.log
注意文件名称换成自己的名称就可以啦,如果没有报错,那么恭喜你成功生成log日志了。
如图:
我那会执行命令后悲催的报了一个 while reading /Users/fangliguo/Desktop/crash/xxx, No such file or directory : at ./symbolicatecrash line 909 的错,死活都不成。后来查资料发现了这么一条终端命令:./symbolicatecrash ./.crash ./.app.dSYM>symbol.crash,nice真的好使。终于可以愉快的分析log日志了。
话不多说,直接找Last Exception Backtrace:
崩溃代码方法及行数直接给你整出来了。
我这边的问题是因为阿里云推送在苹果测试那边获取到的设备id是空,没做非空验证造成的。修改提交,大功搞成。非常happy,又掌握了一项新技能。