如何通过友盟的错误分析报告,定位到错误代码的位置

加入友盟统计功能后,友盟后台会有一个错误分析的统计项,点进去之后可以查看项目的错误报告。对于开发人员来说,查看报告不是最终目的,找到错误的原因才是最终目的。如何通过这堆报告定位到错误的代码呢?早上查了好些资料,终于成功了。

我们先看一下错误报告是什么样的:

友盟错误报告

这份报告所包含的主要信息有:

1、首行是错误的原因。显而易见,以上的错误是由于数组越界了。
2、打红色马赛克的地方是你的工程名字。
3、红色马赛克之间有一个淡绿色的地址,这就是错误代码的位置。
4、 dSYM UUID,这个是dSYM文件的唯一标识。dSYM 是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中,并且每次编译项目的时候都会生成一个新的 dSYM 文件。
5、CPU Type. 定位错误的时候,我们也需要用到这个参数。

定位错误代码,我们需要将 xx.app 和 xx.app.dSYM 文件找出来.
1、在Windows->Organizer->archivers可以看到你的每一次的打包。然后选择你要查看的错误报告所在的版本,这个一定要选对了。

查找所有的archivers包

选择你的错误报告所对应的包

找到对应的包后,点击右键,然后选择Show in Finder的选项,查看这个包中的内容,如图

archivers包

再右键选择显示包内容,这时我们看到 有dSYMs,Products,SCMBlueprint三个文件夹,我们需要用到的是前两个文件夹

dSYMs文件夹

Products文件夹

此时,将这俩文件夹中最里层的文件都取出来,放到一个新的文件夹中

将俩文件放到新的文件夹中

2.打开终端,cd到刚才新建的文件夹(错误报告)的目录下
输入命令xcrun atos -arch arm64 -o xxxx.app/xxxx 0x10019bc48

其中 arm64是CPU Type;
xxxx对应的是你的工程名,也就是上文友盟错误报告图片中打红色马赛克的部分;
0x10019bc48 是错误代码的地址,也就是上文友盟错误报告图片中淡绿色的那个内存地址。

定位错误代码

其中-[SubscribeViewController isSubcribeSuccess:] (in woshiPM) (SubscribeViewController.m:342)就是错误代码的位置,在SubscribeViewController.m中的isSubcribeSuccess方法中,342是代码所在的行数。

这样就可以在你的工程中找到相应的代码去做修改了。

转自:http://www.jianshu.com/p/17fd659df460?open_source=weibo_search

时间: 2024-10-16 21:31:09

如何通过友盟的错误分析报告,定位到错误代码的位置的相关文章

快速定位错误代码!友盟错误分析放大招

新版错误分析 错误分析是友盟为移动开发者提供的 Crash 收集和分析的工具,能够帮助开发者监测 App 在移动设备上的运行状况,及时发现并解决错误,提升 App 的稳定性.11月,新版错误分析全面上线,功能有很大的提升,友盟新版错误分析力求为开发者提供优质完美的体验与服务! 新版错误分析的功能 1.可以按照错误类型.应用版本筛选错误. 2.可以根据不同的条件为错误添加标签,便于快速分类及查找错误. 3.安卓可以通过上传 mapping 文件来定位到 Crash 的具体位置.IOS 可以通过下载

利用友盟定位iOS线上版本项目的崩溃位置

引言 当我们的项目打包上传苹果商店之后,出现的崩溃问题不会想在XCode中那么明显了,那么我们就要对项目的crash日志进行分析,至此,友盟的崩溃分析作用就体现出来了. 前提 你的项目中集成了友盟 能获取到项目的dSYM文件 什么是 dSYM 文件 Xcode 编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中,并且每次编译项目的时候都会生成一个新的 dSYM 文件,位于 /Users/<用户

友盟分享流程

由于苹果审核政策需求,SDK中对未安装客户端平台进行隐藏,因此在未安 装QQ.微信客户端情况下,分享面板中不会出现QQ.Qzone.微信及朋友圈图标,如果需要显示,调用下面的方法,//UMShareToQQ. UMShareToQzone为要显示的平台,传nil显示所有平台 [UMSocialConfig showNotInstallPlatforms:@[UMShareToQQ,UMShareToQzone,UMShareToWechatsession]]; 1.   产品概述 友盟社会化组件

iOS友盟统计及错误处理

一.集成友盟统计 在友盟统计平台查看集成文档 二.错误处理 1.打开前往文件夹输入 "~/资源库/Developer/Xcode/Archives/" 前往: 2.找到对应打包的时间文件夹下的 "项目名 2018-4-24 14.34.xcarchive" 文件: 3.右击显示包内容,到"dSYMs"文件下找到 "项目名.app.dSYM": 4.右击显示包内容,"-->Contents-->Resour

如何通过友盟的错误信息分析项目中问题的具体位置

一.你需要找到和友盟上相同版本的Archive文件,位置是xcode->Windows->Organizer,找到打包的那一条目,右键Show in Finder->右键显示包内容->dSYMs下找到 项目名.app.dSYM,将其拷贝到文件夹A. 二.打开友盟,找到错误信息中青色带下划线的内存地址,有时候会有2个,用上边的那一个,如下图的0xb1d51. 三.打开终端(launchPad--其他中),cd 到放dSYM文件的文件夹A中,然后输入如下命令 回车之后在提示的下方就能找

友盟加入应用统计,错误报告功能

无论是AS还是Eclipse集成都应加入权限和你的应用的appkey <manifest……> <uses-sdk android:minSdkVersion="4"></uses-sdk> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permissio

如何通过友盟分析发布后App崩溃日志-b

要分析崩溃日志,首先需要保留发布时的编译出来的.xcarchive文件.这个文件包含了.DSYM文件. 我一般的做法是,发布成功后,把这个文件.xcarchive直接提交到代码版本库对应的版本分支里,这样就不会搞丢了. 这个文件在哪呢?打开XCode->菜单Window->Organizer,在编译成功的文件上右键,就能打开了. 两种比较麻烦的方法. 第一种方法: 使用dwarfdump命令 dwarfdump --uuid xx.app.dSYM     用来得到app的UUID.dwarf

分析友盟错误日志

要分析崩溃日志,首先需要保留发布时的编译出来的.xcarchive文件.这个文件包含了.DSYM文件. 我一般的做法是,发布成功后,把这个文件.xcarchive直接提交到代码版本库对应的版本分支里,这样就不会搞丢了. 这个文件在哪呢?打开XCode->菜单Window->Organizer,在编译成功的文件上右键,就能打开了. 两种比较麻烦的方法. 第一种方法: 使用dwarfdump命令 dwarfdump --uuid xx.app.dSYM     用来得到app的UUID.dwarf

iOS 友盟统计崩溃日志查询

1.在Finder中找到你打出去的那个包,YourAppName.xcarchive. 2.然后Show Package Contents,在dSYMs 和 Products文件夹内找到这两个文件:YourAppName, YourAppName.app.dSYM 3.把这两个文件放到一个文件夹内,在终端进入该位置. 4.根据友盟统计上的错误分析,输入相应的如下命令行即可定位到出错内容: atos -arch armv7 -o YourAppName.app/YourAppName 0x306d