今天说下折磨了整整半天的问题, 就是友盟错误解析, 以前并没有弄过, 我这次也是第一次弄, 领导要结果,没办法,可是解决中发现了不少问题,很多人的博客过于粗糙,让人一下看不懂, 所以走了不少弯路, 也浪费了很多时间
首先, 我的项目中, 报了两个crash, 如下图:
我们打眼一看, 第二个crash肯定是在哪个代码里的问题
所以我们先解决第二个crash
- 1 进入之后,显示的信息是这样的:
- 2 想找到引起这个崩溃的具体的位置, 其实只要找到你打包时生产的archives文件
具体如下:
前往-> /Users/你的用户名/Library/Developer/Xcode/Archives - 3 你会发现有日期的文件夹, 你这个引起崩溃的APP的版本的发布日期, 根据日期找到那个版本的文件夹, 进去后会发现.xcarchive的文件, 显示包内容,
-
4 找到箭头所指的这个文件后继续显示包内容,一步一步找到下面的文件 这个文件的名字和你的项目名字是相同的
5 找到这个文件后就好说了, 回到你的友盟页面, 在图二, 箭头所指的地址上点击, 会出现如下图的显示:
画横线的这一句白色的代码复制, 这个地址就是你发生崩溃的地址, 下面将要解析这个地址
- 6 打开终端 输入第5步复制的那段白色的代码, 并且空格, 然后把第4步找到的那个文件拖拽到终端上,就会显示出这个文件的路径, 我的显示如下:
-
7 回车后显示如下, 这里line table dir 的地方显示出崩溃的路径 line table file 显示的是文件名 line 126 column 21 表示第126行21列, 只不过我这里显示的问题出现在百度推送上
8 如果你显示的是你自己的代码,那么就找到那个地方修改他
第一个crash的解决方法
我亲试过, 利用第二个的方法并不适用, 按照上面的步骤来,会最终定位不到,显示如下图:
所以经过搜索, 我换了一种方式:
-
1 在图三中, 我们找到的那个文件, 我们创建一个文件夹给他拷贝到里面, 在图三products文件夹下找到箭头所指的这个文件, 同样把这个文件拷贝到文件夹里面,
2 你打包上传到AppStore时的同版本.ipa 的那个文件, 也给他拷贝到文件夹中, 最后你的文件夹中应该有这三个文件
- 3 进入友盟界面, 找到第一个crash, 并进入, 有如下显示, 拷贝箭头锁着的这个绿色的地址
- 4 打开你的终端, cd + 空格 进入到刚才创建的这个文件夹
输入:xcrun atos -arch armv64 -o xxxxxx.app/xxxxxx 0x1001a81cc
并回车
其中,
- 1 : armv64 是图十一中CPU Type 的类型, 如果你这里显示的是arms7 ,那么就改为你显示的,
- 2 : xxxxx是你的APP的名称
- 3 : 0x1001a81cc是刚才你复制的绿色异常的地址, 我这里显示为0x1001a81cc
-
5 回车后会显示如下图, 画横线的就是指示出崩溃的地方
如果你的显示结果也和我的一样,显示UmengSignalHandler的话, 我查看了友盟的论坛
结果如下:
如果是UmengSignalHandler忽略即可,UmengSignalHandler 不是错误,是捕捉crash的方法,本身不引起crash, 当crash发生时由它来捕捉
备注: 其实在我尝试解析友盟错误的时候, 也尝试了使用工具来解析,网上也很多教程,
下面的链接是另一位博主贴出的:
dSYM 文件分析工具
http://answerhuang.duapp.com/index.php/2014/07/06/dsym_tool/
这是这位博主answer-huang开发了一个工具,专门用来快速定位崩溃日志的代码。感谢这位仁兄的提供这么方便的工具。
工具代码还是开源的:https://github.com/answer-huang/dSYMTools
工具下载地址:http://pan.baidu.com/s/1bnkxPvT
百度网盘的下载地址容易失效,csdn下载地址,当然是免积分下载了。
地址:http://download.csdn.net/detail/totogo2010/8012367
只不过我个人根据上面的地址下载了第一个版本的解析工具时并没有像他讲解的那样显示出界面, 并且点击后会崩溃, 而最新版本的解析工具下载后打不开, 有人说可能是mac电脑最新的系统的原因, 你也可以尝试用上面的解析工具, 如果你知道我的这个问题能怎么解决, 欢迎您留言