前言:一种愉快的开发方式,轻松快速定位BUG,跟开发中的BUG说再见!(公司里开展技术分享会,我就这对Bugly的使用做了个整理

Bugly 使用分析

作者:tangjianfeng

时间:2018/10/23

腾讯Bugly简介:

  • Bugly是腾讯公司为移动开发者开发的服务之一,是面向移动开发者提供专业的Crash监控,崩溃分析等质量跟踪服务。
  • Bugly能帮助移动互联网开发者更及时地发现掌控异常,更全面的了解定位异常,更高效的修复解决异常。
  • 针对移动应用,腾讯Bugly提供了专业的Crash、Android ANR(application not response)、iOS 卡顿监控和解决方案。移动开发者(Android / iOS )可以通过监控,快速发现用户在使用过程中出现的Crash (崩溃)、Android ANR和iOS卡顿,并根据上报的信息快速定位和解决问题。

【图文简介】:网址链接:https://bugly.qq.com/v2/workbench/apps

一:崩溃信息查看

【1】设备和版本信息查看:

【2】时间查看:

二:崩溃代码对象定位:

【说明】:先需要先确定下BUG项目版本,定位到Bugly出现crash记录下的版本。

【案例】:Bugly上面的crash信息我们可以看到如下:

【修正】:崩溃更改分析:

1:   这里我们就可以快速定位到出现crash的调用处:[ResendEmailView keyboardWillShow]   是系统导致崩溃的代码。

2: 出现错误的是一个ResendEmailView类的调用:keyboardWillShow的类方法的crash,报错是ResendEmailView未初始化的错误,也就是对象未实例化。

3: 通过代码对象的定位,并且调试数据,相信问题就能迎刃而解。

三:Bugly符号化需求

【1】什么是符号表?

答: 符号表是内存地址与函数名、文件名、行号的映射表。符号表元素如下所示:

<起始地址> <结束地址> <函数> [<文件名:行号>]。

【2】为什么要配置符号表?

答:为了能快速并准确地定位用户APP发生Crash的代码位置,

Bugly使用符号表对APP发生Crash的程序堆栈进行解析和还原。

【3】:BuglyiOS符号表配置官方文档入口:

https://bugly.qq.com/docs/user-guide/symbol-configuration-ios/?v=1492997248592
【4】结合项目分析

说明:当Bugly上无显示代码类信息和方法调用,只显示地址信息的情况,如下图:

分析:如上,面板信息没有具体的对象或者方法调用信息,我们确定不了出错代码定位的时候,就需要应用到Bugly  符号化。

四:安装Bugly符号化

【第一步】:给Mac安装Java运行环境先需要安装Java环境,连接地址:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

-------选择MAC版本Java:如下图

说明:打开链接,选择上图中红色圈出部分,下载Mac下的.dmg文件即可。

下载完成之后双击便可一键式安装完毕。

【第二步】:验证安装是否成功和查看Java版本

—————终端指令输入:java -version

—————结果如下:安装1.8的JavaJDK成功

【第三步】:下载Bugly iOS符号表工具:

下载Bugly iOS符号表工具连接地址  —>    Bugly iOS符号表工具

【第四步】:关联项目同名的.dSYM文件

———在确定了BUG版本的情况下,路径操作如下:

show in finder  ->  显示包内容->  dSYMs文件夹->  找到和项目同名的.dSYM文件,即(项目名.app.dSYM)。

【第五步】:准备整理文件:

桌面新建一个文件夹,将找到的这个xx.app.dSYM文件和第一步下载的符号表工具包中“buglySymboliOS.jar”文件,放到新建的文件夹中,方便后续通过终端生成符号表.zip文件(我这里放在Desktop)。

【第六步】:终端生成自己项目的符号表.zip文件

------终端指令:    java -jar /Users/a/Desktop/saicBugly_dSYM/buglySymboliOS.jar -i /Users/a/Desktop/saicBugly_dSYM/SaicCarPlatform.app.dSYM

------注意:路径需要改成自己文件的路径,上面是我本机的文件路径

需要上传的zip文件已经生成:

五:上传当前版本Bugly符号化文件

【第一步】:确定Bugly的崩溃所对应的唯一标识符:UUID

【第二步】:zip文件UUID验证:

—————查看dSYM文件的UUID

—————终端输入:xcrun dwarfdump --uuid <dSYM文件路径>

案例输出:

UUID: E0242B60-058C-39CF-ADAC-8C28979E469A (armv7) /Users/a/Desktop/saicBugly_dSYM/SaicCarPlatform.app.dSYM/Contents/Resources/DWARF/SaicCarPlatform

UUID: D245BAE0-C338-3275-8CF1-6B6741BDB49B(arm64) /Users/a/Desktop/saicBugly_dSYM/SaicCarPlatform.app.dSYM/Contents/Resources/DWARF/SaicCarPlatform

验证结果:版本确定是一致的。

【第三步】:Bugly符号表管理

-------打开符号表管理

————为目标的BUG版本,上传先前合成的指定版本的压缩包:

找到BUG对应UUID:D245BAE0-C338-3275-8CF1-6B6741BDB49B

————上传成功需要等一会:

【等四步】:成果果实收获

这里已经符号化成功了。

总结建议:在测试或者开发构建版本完成,保留构建版本文件,因为在应用符号化定位BUG时,需要Bugly上BUG的UUID对应构建版本文件dSYM的UUID,这样才能通过地址查找并确定崩溃原因。

结尾语:Bugly的使用分析基本上就这些,最后希望大家加班少写点BUG。如有问题,欢迎交流,QQ:497609288

iOS Bugly符号化使用分析的更多相关文章

  1. 【HELLO WAKA】WAKA iOS客户端 之一 APP分析篇

    由于后续篇幅比较大,所以调整了内容结构. 全系列 [HELLO WAKA]WAKA iOS客户端 之一 APP分析篇 [HELLO WAKA]WAKA iOS客户端 之二 架构设计与实现篇 [HELL ...

  2. 《iOS应用逆向工程:分析与实战》

    <iOS应用逆向工程:分析与实战> 基本信息 作者: 沙梓社    吴航    刘瑾 丛书名: 信息安全技术丛书 出版社:机械工业出版社 ISBN:9787111450726 上架时间:2 ...

  3. iOS 苹果官方 Crash文件分析方法 (iOS系统Crash文件分析方法)

    时间2013-08-20 12:49:20 GoWhich原文  http://www.gowhich.com/blog/view/id/343 苹果官方 Crash文件分析方法 (iOS系统Cras ...

  4. 新书《iOS应用逆向工程:分析与实战》

    前无古人!小白福音!国内第一本iOS应用逆向工程类图书<iOS应用逆向工程:分析与实战>就要空降啦~! 你是否曾因应用上线的第一天即遭破解而无奈苦恼,想要加以防范,却又束手无策? 你是否曾 ...

  5. 【转】iOS应用崩溃日志分析

    作为一名应用开发者,你是否有过如下经历?   为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作.它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 ! ...

  6. iOS应用崩溃日志分析

    转自raywenderlich   作为一名应用开发者,你是否有过如下经历?   为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作.它在你的设备上也运行得很好,但是,上了应 ...

  7. iOS开发之Crash分析,以及收集

    一  先谈谈iOS的Crash收集方式: 1. APP 发生crash,用户手机手机上肯定会有crash纪录,当然删除了该app,或是删了再装 crash纪录还是没了. 2. 如果用户设置-隐私  同 ...

  8. iOS应用崩溃日志分析 iOS应用崩溃日志揭秘

    转自:http://www.raywenderlich.com/zh-hans/30818/ios%E5%BA%94%E7%94%A8%E5%B4%A9%E6%BA%83%E6%97%A5%E5%BF ...

  9. iOS,应用崩溃日志分析

    参考资料:http://www.cocoachina.com/industry/20130725/6677.html 1.获得崩溃日志 2.崩溃日志实例 3.符号化崩溃日志 4.低内存闪退 获得崩溃日 ...

随机推荐

  1. maven 编译打包时,明明类文件没有问题,却提示错误:未结束的字符串字面值,maven-compiler-plugin:2.3.2

    maven错误提示如下: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (de ...

  2. docker实战 (1) 关于docker的安装

    docker定义: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...

  3. python利用unittest进行测试用例执行的几种方式

      利用python进行测试时,测试用例的加载方式有2种:  一种是通过unittest.main()来启动所需测试的测试模块:  一种是添加到testsuite集合中再加载所有的被测试对象,而tes ...

  4. fastdfs搭建和使用

    目录 前言 安装 安装插件 tracker storage 用自带的 client 进行测试 想要查看结果必须安装nginx 使用示例 引用 配置 使用 前言 参考网址 错误处理 安装 安装插件 yu ...

  5. springMVC入门-03

    接着上一讲介绍springMVC针对rest风格的支持. 查询数据 使用前:/user_show?id=120 使用后:/user/120 删除数据 使用前:/user_delete?id=123 使 ...

  6. SQL SERVER中的And与Or的优先级

    数据库中有城市库表,其中有国家.省.城市. 举例:在广东省内(包含广东省本身),找出名称为“广州”的记录 首先,广东省内的条件是:ParentId = 2 Or Id =2 名称为“广州”的条件是:N ...

  7. windows下搭建vue开发环境

    Vue.js是一套构建用户界面的 “渐进式框架”.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.2016 ...

  8. centos7.4之zabbix4.0的fping监控

    参考博文: https://www.cnblogs.com/lei0213/p/8859326.html 注释:他是额外安装fping的:因为我yum安装的zabbix,fping就已经自带了:安装步 ...

  9. ZT 80-90年代港台300部电视剧 你看过多少?

    80-90年代港台300部电视剧 你看过多少? [复制链接]     噗噗 738主题 18精华 万家金领 发消息   发表于 2010-4-27 09:01:02 |显示全部楼层 1.(珍珠传奇) ...

  10. sql server 使用链接服务器连接Oracle,openquery查询数据

      对接问题描述:不知道正式库oracle数据库账户密码,对方愿意在对方的客户端上输入账号和密码,但不告诉我们 解决方案:使用一台sql server作为中间服务器,可以通过转存数据到sql serv ...