背景:
苹果拒绝之后,反馈了crash logs 文档,打开看之后
一看在 thread0 崩溃了,初步判断为启动的时候就崩溃了。。查看更多信息需要将日志 :符号化(symbolicatecrash)
下边是 symbolicatecrash具体步骤:
一:在桌面创建一个 crash 文件夹 (用于存放crash文件 ,symbolicatecrash ,DSYM )
1.0:1.Xcoe-Window-Organize找到Archives找到App-右击-Show in Finder
1.1:右击..xcarchive文件-显示包内容
1.2:从dSYMs 中取出 *.dSYM 文件 copy crash 文件夹 中
1.3:从Products -->Applications --> 取出包文件 copy crash 文件夹 中
二:找到symbolicatecrash工具存放的地址
2.1:打开终端输入以下命令:
find /Applications/Xcode.app -name symbolicatecrash -type f
会得到 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/./symbolicatecrash
这样一个路径
2.2:用命令将symbolicatecrash拷贝到桌面的crash文件夹里面,与.app和.app.dSYM放一起
三:做完前两步,你的桌面crash 文件夹中,应该有如下四个文件
3.1 :在终端 CD 到 crash 文件目录
3.2:执行命令 :./symbolicatecrash .crash .DSYM >b.log
3.3:此时我们会看到文件夹中
会多出一个 b.log 文件,,这个就是符号化之后的 crash 信息。。
我们发现,最后调用了UIkit 的系统方法,,崩溃了。。。
这个时候我们就去看在崩溃之前执行了那些方法。。。。
最后发现:程序在运行完 MJResresh 之后,出了点问题,,而罪魁祸首便是
MJ库中的一个 在获得设备语言的时候,获取到了英语,,然后造成了 range 的越界,崩溃。。。耗时 3个小时的bug 终于完结。
符号号的方式有几种,我这边就提供了比较简单的一种,
参考博客:http://402v.com/crash-logfen-xi-shi-zhan/