Xcode7中你一定要知道的炸裂调试神技

摘要:
苹果在Xcode 7中添加了两个重要的调试相关功能。苹果这次带来了革命性的改进。由于前一个项目发布时未与xcode7打包,因此猜测符号表可能不会上传到苹果服务器,因此前一个可能不会直接显示哪一行代码,而是显示调用过程中错误的内存地址。然而,您可以在使用xcode发布后看到下一个版本。

Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给大家。

1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS?

EXC_BAD_ACCESS一直是很多开发者的噩梦,因为这个错误很不直观,出现后往往要花很长时间才能定位到错误。苹果这次带来了革命性的提升。

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

 Xcode7中你一定要知道的炸裂调试神技第1张

这样设置后,如果再出现类似的错误会有更详细的错误信息提示,甚至会有内存使用情况的展示。

Xcode7中你一定要知道的炸裂调试神技第2张

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

在升级iOS9后,苹果会询问用户是否同意收集应用崩溃报告。这样在itunes connect的后台统计中就可以看到一些收集到的数据(通常会有相当一部分用户不同意,所以只是部分数据)。

2.1查看崩溃统计信息

在connect后台中选择app分析

 Xcode7中你一定要知道的炸裂调试神技第3张

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

Xcode7中你一定要知道的炸裂调试神技第4张

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

 Xcode7中你一定要知道的炸裂调试神技第5张

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

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

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

Xcode7中你一定要知道的炸裂调试神技第6张

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

 Xcode7中你一定要知道的炸裂调试神技第7张

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

 Xcode7中你一定要知道的炸裂调试神技第8张

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

 Xcode7中你一定要知道的炸裂调试神技第9张

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

注意!注意!

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

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

Xcode7中你一定要知道的炸裂调试神技第10张

免责声明:文章转载自《Xcode7中你一定要知道的炸裂调试神技》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android开发入门(2)Java 基础windows花指令和堆栈溢出原理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS开发中使用[[UIApplication sharedApplication] openURL:]加载其它应用

iOS 应用程序之间(1) 在iOS开发中,经常需要调用其它App,如拨打电话、发送邮件等。UIApplication:openURL:方法是实现这一目的的最简单方法,该方法一般通过提供的url参数的模式来调用不同的App。   通过openURL方法可以调用如下应用:   调用谷歌地图(Google Maps) 调用邮件客户端(Apple Mail)...

8岁上海小学生B站教编程惊动苹果,库克亲送生日祝福

什么样的关系才能让库克亲自送上生日祝福? 12月16日,苹果公司CEO专门在微博上向一位中国朋友送上了生日祝福。 这个中国朋友,年仅8岁,是个上海小学生。 他其实跟库克非亲非故,也不是苹果重要股东或高管的孩子,他只是利用苹果产品学习编程的小朋友中的一员。 但特别之处在于:这名小学生学而优则教,之前在B站就已经火了……微博还有话题“8岁小学生教你学编程”。...

[转]iOS开发使用半透明模糊效果方法整理

转自:http://www.molotang.com/articles/1921.html 虽然iOS很早就支持使用模糊效果对图片等进行处理,但尤其在iOS7以后,半透明模糊效果得到大范围广泛使用。包括今年最新发布的iOS8也沿袭了这一设计,甚至在OS X 10.10版Yosemite中也开始大量使用半透明模糊。 在iOS开发当中,我们有很多选择可以做半透...

sharepoint:苹果设备访问设置(包括打开infopath表单) 金大昊(jindahao)

正常用Safari打开网站如下:   在这种情况下是无法打开infopath表单的。为了达到目的,就要让移动设备打开的界面和电脑上打开的界面相同,也就是防止移动设备的浏览器的“重定向”。具体步骤如下: 1.找到C:\inetpub\wwwroot\wss\VirtualDirectories\portal.contoso.com80\App_Browser...

MAC使用技巧之苹果电脑抓图截屏方法

用苹果电脑自带的截图功能的快捷键:command+shift+3 三个键按下则抓取/截取全屏 command+shift+4 然后用鼠标框选则抓取该区域的截图 command+shift+4 然后按空格则抓取软件窗口。截图会自动保存到桌面。 command + control + A 截取指定的区域 版权声明:本文为博主原创文章,未经博主允许不得转载。...

iOS12中推送通知新特性

转载自 FlyOceanFish 序言 众所周知,iOS中消息推送扮演了不可或缺的位置。不管是本地通知还是远程通知无时不刻的在影响着我们的用户体验,以致于在iOS10的时候苹果对推送大规模重构,独立了已UserNotifications和UserNotificationsUI两个单独的framework,可见重要性一斑。针对于WWDC18苹果又给我们带来了...