友盟错误分析工具umcrashtool 分析crash

友盟错误分析iOS

官方教程:
官网-文档中心-报表解读-错误分析
官方文档
[友盟错误分析工具,帮助您快速定位错误(]https://mobile.umeng.com/umeng30_error_type)

原文
通过.dSYM文件和umcrashtool解决友盟统计的crash

友盟错误分析工具:umcrashtool
项目中如果集成了crash统计的三方SDK,当遇到闪退问题时对其进行定位和快速解决,下面是用友盟进行日志统计,解决crash的方法。

当然友盟官网也有类似文档,但是太过繁琐,下面简洁说一下解决友盟crash的步骤。

1、登录友盟后台管理系统

在“错误详情”右侧有一个按钮,点击按钮,点击“报表中心查看任务”。

image

点击按钮将日志文件下载在报表中心保存,去报表中心下载.csv文件。

image

新建一个文件夹,将.csv文件放入其中。

2、下载友盟日志分析工具

友盟日志分析工具umcrashtool,在友盟开方平台上下载,然后将其放在上面放.csv文件的文件夹。

3、将.dSYM文件放入文件目录

打包的时会生成一个.dsYM的文件,这个文件在Xcode--->Window--->Organizer---->对应包,鼠标右击show in finder--->鼠标右击显示包内容--->dSYMs--->xxx.app.dSYM。

打包的时候的.dSYM文件需保留,否则无法查找crash。将此文件放入文件目录:~/资源库/Developer/Xcode/

4、终端操作

终端中cd到上面存在.csv和umcrashtool的文件中,然后终端输入:
./umcrashtool .csv文件的路径,如下图:

image

回车后即可看到日志分析结果:

image

错误在哪一行也会标出,然后就可以定位bug是在哪里了。

作者:追沐
链接:https://www.jianshu.com/p/d7586f62d467
来源:
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


上面分析的时候有时候很慢,可以使用下面的方法:

使用atos和错误堆栈内存地址定位崩溃代码位置

1.从 appName.xcarchive 里提出 appName.dSYM 和 appName文件。放到一个目录下。

2.使用终端进入这个目录,使用

 xcrun atos arm64 -o appName 0x0000000100098000  

或者使用

 xcrun atos -arch arm64 -o appName.app/appName 0x0000000100098000  

arm64是架构 ,appName是app文件,0x0000000100098000是基地址

下面详细说明:

首先打开Xcode,点击最上方菜单栏的Window选项,选择Organizer,打开打包页面。

在打包页面选择崩溃的包,右键选择Show in Finder。(包一定要选对,不然内存地址定位会出错)

打开Finder页面后选择的包会显示高亮,右键,选择显示包内容。

点击显示包内容后会看到dSYNs文件夹,点进去会找到这个appName.dSYM文件,将它拷贝到一个文件里(最好是在桌面上单独创建一个crash文件夹)。然后就可以关掉这个窗口了。

点击桌面上你新建的crash文件夹,右键appName.dSYM,点击显示包内容,然后依次打开Contents-Resources-DWARF(这里就一个文件夹链),找到appName文件,将它也拷贝到crash文件夹中。

打开终端,cd crash文件夹目录(直接把文件夹拖进终端,自动显示目录),然后输入xcrun atos arm64 -o appName crashAddress(这里代表崩溃的地址,别那么耿直的输入“crashAddress”。。)

其中arm64要根据在哪个型号的机器崩溃自行确定,可能是armv7,如果是模拟器的话用i386

参考文章:
使用atos和错误堆栈内存地址定位崩溃代码位置
iOS利用堆栈地址定位崩溃位置
如何通过友盟的错误分析报告,定位到错误代码的位置

你可能感兴趣的:(友盟错误分析工具umcrashtool 分析crash)