石林_iOS Bugly符号化使用分析

前言:一种愉快的开发方式,轻松快速定位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)。?

show in finder?? gt?? xian shi bao nei rong gt?? dSYMs wen jian jia gt?? zhao dao he xiang mu tong ming de. dSYM wen jian, ji xiang mu ming. 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

案例输出:

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

?

当前文章:http://www.remogame.com/8aw2i/694595-919019-30365.html

发布时间:01:39:53

4887铁算盘一句解特肖??kj139本港台报码开奖结果??香港赛马会论坛www.702288.com??949cc香港马??tk168图库开奖??4887铁算盘开奖结果??118香港开奖现场直播??49369.com??www.211W.com??www.485123.com??