IOS开发: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后可以标记为已经解决。有两个地方可以标记。

时间: 2024-10-03 04:07:36

IOS开发:Xcode7中的一些调试技巧的相关文章

ios开发-xcode7 中怎么创建空白模板??

问题描述 xcode7 中怎么创建空白模板?? xcode7 中怎么创建空白模板或者修改出空白模板??网络上很多方法试过,但是在模拟器运行就报错~ 解决方案 看下xcode有没有安装正确 解决方案二: 创建Xcode 模板 解决方案三: window必须有一个rootViewController..

iOS开发CoreAnimation解读之五——高级动画技巧

iOS开发CoreAnimation解读之五--高级动画技巧 一.事务类         CoreAnimation中还有一个非常重要的类:CATransaction事物类,这个可以同时设置多个layer层的动画效果.可以通过隐式和显式两种方式来进行动画操作. 二.CATransaction属性         对layer层的属性操作,都会形成隐式动画,要使用隐式动画,需要关闭layer层的animation动画属性,使用下面的方法: ? 1 2 3 //关闭animation动画效果,开启隐

一探前端开发中的JS调试技巧

友情提示:文中涉及较多Gif演示动画,移动端请尽量在Wifi环境中阅读 前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今天,如何在前端开发中降低开发成本,提升工作效率,掌握前端开发调试技巧尤为重要. 本文将一一讲解各种前端JS调试技巧,也许你已经熟练掌握,那让我们一起来温习,也许有你没见过的方法,不妨一起来学习,也许你尚不知如何调试,赶紧趁此机会

iOS开发:创建真机调试证书

方法/步骤 1 首先打开苹果的开发者网站(Tips:这里我就不贴网址了) 点击网站上方的Member Center,会跳转到登录界面(Tips:如果登录过,并选择了浏览器保存此密码的时候,默认是登录状态). 2 如图所示输入你的开发者账号和密码. 输入完成后点击"Login"(Tips:左边是注册,下边是找回密码,右边是登录,如果没有开发者账号,则需要用苹果账号申请开发者,这里不多说申请过程以及找回过程). 3 登录后的界面如图所示,如果没有最上面的两个选项(Dev Centers.C

ios开发-xcode中怎么做到点击按钮从当前页面转入一个新的页面?

问题描述 xcode中怎么做到点击按钮从当前页面转入一个新的页面? 我是个初学者,只有简单的了解MVC和一些简单的api,我想知道我做一个登录界面,怎么让我点击登录之后进入下一个应用界面呢?大牛给详细的解答好吗,谢谢大神. 解决方案 从A页面跳到B页面 1.ViewControllerB *B=[[ViewControllerB alloc] init]; [self.navigationController pushViewController: B animated:true]; 2.Vie

ios开发-xcode7自动生成代码问题

问题描述 xcode7自动生成代码问题 xcode7在oc编码过程中,如果.h接口中声明的实例方法,在实现类.m中没有实现,会提示没有实现接口中的方法,如果是eclipse开发java时,可以自动生成代码,xcode能否自动生成? 解决方案 Xcode 自动生成代码片段xcode7 代码折叠功能

ios 开发-AVAudioPlayer中的averagePowerForChannal:意义 ?

问题描述 AVAudioPlayer中的averagePowerForChannal:意义 ? AVAudioPlayer中的averagePowerForChannal: 和 peakPowerForChannal: 的值有什么意义? 文档中的解释是: averagePowerForChannal: Returns the average power for a given channel, in decibels, for the sound being played. 那 average

提高iOS开发效率的小技巧与思路_IOS

先用一张图展示学习iOS开发应该掌握的知识体系: 1.全图片作为背景的时候,可能遇到的问题.,滑回的时候,图片停留了一会才滑回去. 原因: 这种界面一般使用一般用imageView的第三种填充方式. 这种填充方式可以让图片不被压缩变形的前提下,尽可能去填充整个控件,但是设置这个枚举的填充方式的时候,记得按照下图这样设置,将超出控件范围的给切割掉 设置约束的时候,记得选择currentview的那个对象 2.设备适配的问题 还是上面这张图片,按照设计在6p上面来设置自动约束,约好后,在5s上面的时

iOS开发工具:网络封包分析工具Charles详解

简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析. Charles是收费软件,可以免费试用30天.试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时. 因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的