最近初版项目上线的时候,审核被拒,苹果给打回了崩溃报告(见下图0-1)。
瞬间炸毛了!!!公司催着上线,所以赶紧看看是什么原因导致我的项目崩溃无法通过审核。。。
打开崩溃日志,是这样的,如下图(图0-2)
都是一串串内存地址,根本定位不到闪退原因。苹果打回来的崩溃日志但是问题还是要解决的,所以接下来就要手动解析崩溃日志。参考网上的方法,试了几次都没成功解析出来,后来灵感乍现,成功了。不要问我为什么,因为我也不知道。下面贴出来我的详细步骤。
==================操作核心=======================
步骤一、找到.app.dSYM文件
1.在桌面上新建一个文件夹,可以随便命名,我这里命名为crash文件夹,如图1-1.
2.在xcode中找到你上传的ipa包,点击右下角的Download dSYMs...,如图2-1
点击后可能会出现下图2-2的情形,别害怕,我有办法。
继续跟我走:重新选中ipa包,右击选择show in Finder,如图2-3
然后再选择显示包内容,如图2-4
找到这个.dsym文件,如图2-5。
然后把这个文件拷贝到步骤1创建好的crash文件夹内。
步骤二: 找到symbolicatecrash工具
1.右击访达,选择前往文件夹,如图3-1
输入:/应用程序/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash 点击前往,如图3-2
找到symbolicatecrash这个文件,如图3-3。然后拷贝到crash文件夹下。
步骤三:这个步骤很简单
1.找到苹果给打回的.txt崩溃报告。这里啰嗦一下:我的.txt崩溃报告只能在网页上浏览,不能直接下载成.txt文件,所以通过文本编辑工具先新建个crashLog.rtf的文件,把崩溃日志的内容全部拷贝进去,然后保存。再强转该文件的后缀名为crashLog.txt格式。
2.把这个crashLog.txt形式的崩溃报告文件也拷贝到crash文件夹中。如图3-4,三个文件都准备就绪了
步骤四:最关键的一波操作
1.打开终端,输入 :cd + crash文件夹的路径(输入完cd后,敲下空格,然后把crash文件直接拖动到终端里,就会自动找到crash文件夹的路径),如图4-1。然后回车
2.继续输入一下命令:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash crashLog.txt HuaBen.app.dSYM > outputFileName.txt 然后回车
其中crashLog.txt 、HuaBen.app.dSYM这两个文件使我们之前准备好的,请对号入座,不要写错名字了。outputFileName.txt这个文件是我们随意起的一个文件的名字,这个文件生成后,所有的闪退bug就会在这个文件中编译出来。
有时候当你输完上面那行命令,会出现图4-2的情形
3.这时候继续输入命令:
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer" 然后回车。
4.再次输入步骤2的命令即可:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash crashLog.txt HuaBen.app.dSYM > outputFileName.txt 然后回车.
5.稍微耐心等一下,崩溃报告编译工作就开始进行了,等完成后打开生成的编译文件,如图4-3
找到核心区域看一下,就找到了闪退的bug所在,如图4-4
我这里是由于首页在viewWillAppear:方法里的loadData方法里穿的参数找不到导致无法进入首页就崩溃了。接下来就是去修改自己的代码了。
================结束语===========================
好啦,帖子写到这里,就完成了。最后希望所有的开发人员项目都永无bug,如果运气不好也碰到了跟我一样的问题,希望这个帖子能帮到你。
因为年轻,所以没有选择,只能试试~