iOS崩溃日志,友盟崩溃日志,奔溃定位

项目使用友盟统计bug,崩溃发生时友盟提供了发生崩溃的内存地址,接下来我们通过内存地址定位问题代码。

1. 找到上传版本的dSYM

dSYM的位置:
Xcode->Organizer->找到发生崩溃的版本(右键)--> Show in Finder,右击Finder中的.xcarchive文件点显示包内容,找到dSYMs目录下的xxx.app.dSYM文件,继续显示包内容,找到Contents目录下的Resources目录下的DWARF目录。

2. 将终端定位到DWARF目录

在命令行输入:cd DWARF目录路径

cd /Users/circusjonathan/Library/Developer/Xcode/Archives/2017-04-27/HEKAI\ 2017-4-27\ 20.51.xcarchive/dSYMs/HEKAI.app.dSYM/Contents/Resources/DWARF 
3. 定位问题

通常我们会在友盟的问题统计页面看到类似这样的错误信息

iOS崩溃日志,友盟崩溃日志,奔溃定位_第1张图片
友盟崩溃信息
图中蓝色的字体,前面是项目名(HEKAI)的错误就是崩溃的内存地址
在终端执行以下命令:
atos -arch [项目设置的CPU Type] -o [项目名] [错误发生的内存地址] [项目名] + 255428
CPU Type可以在Build Setting中查看,友盟的错误信息里面有这个信息,如上图的左下角。CPU Type写错了会定位不到问题。
iOS崩溃日志,友盟崩溃日志,奔溃定位_第2张图片
在Build Setting中查看CPU Type
键入命令:

atos -arch arm64 -o HEKAI 0x10003e5c4 HEKAI + 255428

回车就会定位到崩溃的地方
定位崩溃在项目中发生的位置

上图可以看出,问题定位到了HKScanQRViewController.m文件的177行,发生问题的方法是nextStepEvent:,到此问题就定位好了,然后根据具体情况消除问题。

可视化工具

在网上看到answer-huang开发了一个工具,专门用来快速定位崩溃日志的代码,工具特别好用,使用步骤如下:
1.将打包发布软件时的xcarchive文件拖入软件窗口内的任意位置(支持多个文件同时拖入,注意:文件名不要包含空格)。
2.选中任意一个版本的xcarchive文件,右边会列出该xcarchive文件支持的CPU类型,选中错误对应的CPU类型。
3.对比错误给出的UUID和工具界面中给出的UUID是否一致。
4.将错误地址输入工具的文本框中,点击分析。

iOS崩溃日志,友盟崩溃日志,奔溃定位_第3张图片
通过可视化工具定位崩溃位置
工具使用说明: http://answerhuang.duapp.com/index.php/2014/07/06/dsym_tool/。
工具下载链接: http://download.csdn.net/detail/totogo2010/8012367

你可能感兴趣的:(iOS崩溃日志,友盟崩溃日志,奔溃定位)