iOS开发日记54-Xcode7调试神技

今天博主有一个升级Xcode7的需求,遇到了一些困难点,在此和你们分享,但愿可以共同进步.xcode

1.Address Sanitizer: 不再用担忧 EXC_BAD_ACCESS 

EXC_BAD_ACCESS一直是不少开发者的噩梦,由于这个错误很不直观,出现后每每要花很长时间才能定位到错误。苹果此次带来了革命性的提高。服务器

在项目的Scheme中Diagnostics下,选中enable address sanitizer(注意选中后Xcode会从新编译整个项目)。网络

这样设置后,若是再出现相似的错误会有更详细的错误信息提示,甚至会有内存使用状况的展现。app

2.发布后的crash跟踪,轻松定位崩溃代码

在升级iOS9后,苹果会询问用户是否赞成收集应用崩溃报告。这样在itunes connect的后台统计中就能够看到一些收集到的数据(一般会有至关一部分用户不一样意,因此只是部分数据)。ui

2.1查看崩溃统计信息

在connect后台中选择app分析调试

进入分析页面后,tab中选择“指标”code

而后在左侧的菜单中选择“崩溃”blog

这样就能够看到苹果收集到的崩溃统计,必定要注意这里只是一部分的数据,举例来讲若是你看到的崩溃是10次,可是可能苹果只收集了20%的用户信息。因此你能够大概估计应该是10*5=50次崩溃。排序

2.2在Xcode中查看具体崩溃信息

在xcode中菜单的window下选择organizer,在打开的窗口中选择Crashes,这样Xcode会开始下载相关的崩溃信息到本地中(网络环境很差时可能要等待一些时间)。内存


organizer窗口

能够在左侧选择你要查看崩溃信息的发布版本

 

在崩溃信息这一栏苹果会按照崩溃数量排序,将崩溃数量最多的排在最前。右侧的详细信息会显示是崩溃时的调用堆栈,能够看到是哪行代码致使的崩溃。

选中要解决的崩溃后,能够在窗口右侧选择open in project。

神奇的事情发生了!!!在打开的项目中,会直接定位到崩溃的那行代码。这大大提升了调试的效率!我已经的火烧眉毛要和开发安卓的同事分享这份喜悦了。

注意!注意!

由于以前的项目发布时没有用xcode7打包,因此猜想符号表可能没有上传到苹果服务器,因此之前的项目可能不能直接显示是哪行代码,而是显示调用时出错的内存地址。不过下个版本你用xcode发布后就能够正常看到啦。

在解决完这个crash后能够标记为已经解决。有两个地方能够标记。

 
 
 

因此没有升级xcode7的同窗赶忙升吧。O(∩_∩)O~

 

http://www.tuicool.com/articles/q67feaZ?plg_nld=1&plg_uin=1&plg_auth=1&plg_nld=1&plg_usr=1&plg_vkey=1&plg_dev=1

 

http://www.jianshu.com/p/456f96564567?plg_nld=1&plg_uin=1&plg_auth=1&plg_nld=1&plg_usr=1&plg_vkey=1&plg_dev=1

相关文章
相关标签/搜索