iOS之利用腾讯Bugly程序调试,测试代码bug、卡顿等状况

1.本身先写一个 Demo 演示一下利用bugly测试崩溃的具体状况。 
在ViewController里面实现崩溃代码以下: 
ios

 

运行后 毫无疑问程序报错了!数组

2.使用到第三方的框架Bugly,官方下载bugly 
3.进入后利用qq注册一下,完整一下相应的我的信息。app

 

4.进入后注册一下你要测试的app,我建立的app demo叫CocoaPodText以下。框架

 

5.利用CocoaPods集成 Bugly框架,详情见本人博客关于CocoaPods的配置使用,只须要pod Bugly如图。 
ide

 

6.接下来回到项目中,在 AppDelegate.m 中引入Bugly/Bugly.h,和代理BuglyDelegate,初始化 Bugly等。工具

 

appid获取处: 
测试

 

7.完成代理方法: 
ui

 

8.接下来运行,点击button崩溃后能够打印出出错信息。刷新bugly上你的app异常日志上报界面如图(此截图我是测试了两处bug后的异常状况截图): 
.net

 

点击进去详情: 
debug

 

到这里你会发现这个日志中的崩溃点虽然定位到具体某一个文件中的某一个方法,可是具体到某一行彷佛并无实现。不着急慢慢来。。。 
这须要另一个概念:符号表。点击进去你的崩溃详情中回发现有那么一个东西以下: 

 

符号表: 
没有符号表,咱们就没法定位崩溃中的符号对应的代码所在的类以及类中的行数位置。咱们在每次构建版本、debug的时候,都会生成dSYM后缀名的符号表文件,而咱们App在手机上运行的时候,崩溃后产生的崩溃信息,不可能定位到代码的多少多少行,由于这些信息对于App运行是没有意义的,存储在App中势必会增大安装包的体积,因此App的崩溃信息都是存储为各类符号,具体符号表明什么,须要去符号表中查找对应的含义。 
  咱们每次debug、构建版本,都会生成dSYM文件,都对应了一个UUID(像咱们的手机同样,都有一个惟一标志),按下图指示,咱们就能找到咱们所使用的App版本对应的dSYM文件的UUID,经过这个UUID,咱们就能找到存储在咱们电脑中的dSYM文件,将这个文件上传到bugly,bugly会自动帮咱们找到崩溃符号的含义。 
   
  1)接下来 你能够根据官方给的如何上传符号表来完成。我也是根据文档中关于自动配置自动配置:XCode + sh脚本来实现的,下载好配置文件以下: 
  

 

  
  2)配置Xcode编译执行脚本在Xcode工程对应Target的Build Phases中新增Run Scrpit Phase 
  

  
  3)打开工具包中的dSYM_upload.sh,复制全部内容,在新增的Run Scrpit Phase中粘贴 
4)修改新增的Run Scrpit中的App ID,App Key,App的Bundle Id等。 
5)脚本默认在Debug模式及模拟器编译状况下不会上传符号表,在须要上传的时候,请修改下列选项 
Debug模式编译是否上传,1=上传 0=不上传,默认不上传 
UPLOAD_DEBUG_SYMBOLS=0 
模拟器编译是否上传,1=上传 0=不上传,默认不上传 
UPLOAD_SIMULATOR_SYMBOLS=0 
以下: 

 


至此,自动上传符号表脚本配置完毕,Bugly 会在每次 Xcode 工程编译后自动完成符号表配置工做。

当你再次刷新你的bugly界面时,闪崩的行号自动变动为正常在项目中对应的行号: 
一下是我配置的另外一个项目中的结果展现: 
第一个图中代码部分501行明确能够看出来数组越界的问题,输出部分标号3也定位到是tableView的点击方法里面,可是后面的352缺并非表明行号。因此经过符号表脚本配置,咱们能够看到第二张图中明确的闪崩行号501.

 

 

发现里面的异常状况说得很详细,主要还根据异常状况给出了相应的解决方案,这一点很棒。

本人以为这个bugly比友盟统计中的异常调试更方便全面。

相关文章
相关标签/搜索