文档章节

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

Gong_xiao
 Gong_xiao
发布于 2015/10/23 14:17
字数 784
阅读 110
收藏 3
点赞 0
评论 0

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


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

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

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

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


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


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

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

2.1查看崩溃统计信息

在connect后台中选择app分析


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


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


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

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

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


organizer窗口

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




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


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


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

注意!注意!

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

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



所以没有升级xcode7的同学赶紧升吧。O(∩_∩)O~


© 著作权归作者所有

共有 人打赏支持
Gong_xiao
粉丝 2
博文 55
码字总数 7990
作品 0
南京
Xcode7中你一定要知道的炸裂调试神技

Xcode7中苹果为我们增加了两个重要的debug相关功能。了解之后觉得非常实用,介绍给大家。 1.Address Sanitizer: 妈妈再也不用担心 EXCBADACCESS? EXCBADACCESS一直是很多开发者的噩梦,因为这...

TomatosX ⋅ 2015/10/29 ⋅ 0

fir.im Weekly - 热门 iOS 第三方库大盘点

本期 fir.im Weekly 收集的热度资源,大部分关于Android、iOS 开发工具、源码和脑洞大开的 UI 动画,希望给你带来更多的工作创意与灵感。 盘点国内程序员不常用的热门iOS第三方库 @ios122 的...

风起云飞fir_im ⋅ 2015/10/21 ⋅ 0

app不可用,如何解决

xcode真机调试安装到设备上的app,几天后显示“app不可用”,还会遇到闪退,这是怎么回事呢,应该如何解决 我现在用的是Xcode7免证书调试新手跪求大神解答,无限感激

sharyJane ⋅ 2016/06/29 ⋅ 0

React Native真机调试

最近在尝试使用 React Native 做一些东西,发现真机调试还是有一些坑存在的。 iOS 真机调试 首先,你要让调试用电脑和你的手机必须处于相同的 WiFi 网络中下 打开 iOS 项目的 文件 更改 中的...

mot_evans ⋅ 2015/09/30 ⋅ 3

倍数提高工作效率的 Android Studio 奇技

来源:JeremyHe 链接:http://zlv.me/posts/2015/07/13/14android-studio-tips/ 这是从Philippe Breault的系列文章《Android Studio Tips Of the Day》中提取出来的自认为精华的部分。 这些技...

数通畅联 ⋅ 2015/10/22 ⋅ 0

【官方方法】xcode7免证书真机调试

先看官网的图 可以看到官方说了xcode7可以让所有人都更轻松的将app运行在自己的设备上,而无需开发者帐号。 不过xcode7需要OSX10.11的支持,而目前(2015.06.10)下载后者的开发者预览版是需...

hejunbinlan ⋅ 2015/09/25 ⋅ 0

安卓手机好评榜第一名竟然是魅族?!那魅族Pro8你需要了解一下!

最近技哥一直在关注小米呀华为呀性能炸裂的旗舰机,竟然忽视了安安静静的魅族! 根据安兔兔数据统计,魅族PRO 6 Plus竟然摘得安卓手机好评率第一名?!果然真旗舰还是真旗舰呀! 可是最近发布...

m7720eiosi6oa9 ⋅ 05/01 ⋅ 0

iOS signal 11 问题

ios signal 错误问题 大家好,这边在调试iOS异常crash收集的时候,遇到如下问题 造一个野指针错,正常情况系统会抛出signal 11错误,然后闪退, 但是目前在集成bugly+自己写的一个简单的sig...

godLoveYao ⋅ 2017/01/22 ⋅ 1

Xcode7 真机调试步骤以及遇到的问题解决办法

翻译自: How to sideload apps on your iPhone using Xcode 7 Download and install the Xcode 7 beta 下载安装Xcode7 没什么好说的 打开Xcode7,打开preference 添加自己的apple ID登陆上去......

hejunbinlan ⋅ 2015/09/25 ⋅ 0

React Native 真机调试

iOS 真机调试 方法一:(从设备访问开发服务器) 首先,你的笔记本电脑和你的手机必须处于相同的 wifi 网络中。 打开 iOS 项目的 AppDelegate.m 文件 更改 jsCodeLocation 中的 localhost 改...

Jack088 ⋅ 2015/10/10 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring MVC基本概念

只写Controller

颖伙虫 ⋅ 16分钟前 ⋅ 0

微软重金收购GitHub的背后逻辑原来是这样的

全球最大的开发者社区GitHub网站花落谁家的问题已经敲定,微软最终以75亿美元迎娶了这位在外界看来无比“神秘”的小家碧玉。尽管此事已过去一些时日,但整个开发者世界,包括全球各地的开源社...

linux-tao ⋅ 16分钟前 ⋅ 0

磁盘管理—逻辑卷lvm

4.10-4.12 lvm 操作流程: 磁盘分区-->创建物理卷-->划分为卷组-->划分成逻辑卷-->格式化、挂载-->扩容。 磁盘分区 注: 创建分区时需要更改其文件类型为lvm(代码8e) 分区 3 已设置为 Linu...

弓正 ⋅ 37分钟前 ⋅ 0

Spring源码解析(六)——实例创建(上)

前言 经过前期所有的准备工作,Spring已经获取到需要创建实例的 beanName 和对应创建所需要信息 BeanDefinition,接下来就是实例创建的过程,由于该过程涉及到大量源码,所以将分为多个章节进...

MarvelCode ⋅ 56分钟前 ⋅ 0

js模拟栈和队列

栈和队列 栈:LIFO(先进后出)一种数据结构 队列:LILO(先进先出)一种数据结构 使用的js方法 1.push();可以接收任意数量的参数,把它们逐个推进队尾(数组末尾),并返回修改后的数组长度。 2....

LIAOJIN1 ⋅ 今天 ⋅ 0

180619-Yaml文件语法及读写小结

Yaml文件小结 Yaml文件有自己独立的语法,常用作配置文件使用,相比较于xml和json而言,减少很多不必要的标签或者括号,阅读也更加清晰简单;本篇主要介绍下YAML文件的基本语法,以及如何在J...

小灰灰Blog ⋅ 今天 ⋅ 0

IEC60870-5-104规约传送原因

1:周期循环2:背景扫描3:自发4:初始化5:请求6:激活7:激活确认8:停止激活9:停止激活确认10:激活结束11:远程命令引起的返送信息12:当地命令引起的返送信息13:文件传送20:响应总召...

始终初心 ⋅ 今天 ⋅ 0

【图文经典版】冒泡排序

1、可视化排序过程 对{ 6, 5, 3, 1, 8, 7, 2, 4 }进行冒泡排序的可视化动态过程如下 2、代码实现    public void contextLoads() {// 冒泡排序int[] a = { 6, 5, 3, 1, 8, 7, 2, ...

pocher ⋅ 今天 ⋅ 0

ORA-12537 TNS-12560 TNS-00530 ora-609解决

oracle 11g不能连接,卡住,ORA-12537 TNS-12560 TNS-00530 TNS-12502 tns-12505 ora-609 Windows Error: 54: Unknown error 解决方案。 今天折腾了一下午,为了查这个问题。。找了N多方案,...

lanybass ⋅ 今天 ⋅ 0

IDEA反向映射Mybatis

1.首先在pom文件的plugins中添加maven对mybatis-generator插件的支持 ` <!-- mybatis逆向工程 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-ma......

lichengyou20 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部