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

参考链接:http://www.cocoachina.com/ios/20151020/13794.html

转载于:https://www.cnblogs.com/maxChang/p/4897532.html

Xcode7中你一定要知道的炸裂调试神技相关推荐

  1. Xcode7中你一定要知道的炸裂调试神技【转载】

    Xcode7中苹果为我们增加了两个重要的debug相关功能.了解之后觉得非常实用,介绍给大家. 1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS? EXC_BA ...

  2. Xcode7中你一定要知道的炸裂调试神技(转)

    1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS? EXC_BAD_ACCESS一直是很多开发者的噩梦,因为这个错误很不直观,出现后往往要花很长时间才能定位到错 ...

  3. 消除 Xcode7 中 directory not found for option 'xxxx' 警告

    消除 Xcode7 中 directory not found for option 'xxxx' 警告 升级Xcode7之后,你会遇到一些警告信息,诸如以下一条: ld: warning: dire ...

  4. 关于Xcode7中添加不了libresolv.dylib等类似库的问题

    Xcode7中,由于某些机制,使得我们在添加类似于 libresolv.dylib.libz.dylib等库的时候,直接在Build Phases中点击加号添加,似乎已经无法找到相应的库.此时,我们可 ...

  5. Xcode7中 添加 .dylib

    转一个 Xcode 7 缺少 *.dylib库的解决方法 Xcode7中 Link Binary With Libraries 没有 .dylib库,只能找到对应的 .tbd,但不能代替使用,通过查找 ...

  6. 在Xcode7中搭建python开发环境

    在Xcode7中搭建python开发环境 我使用的版本为Version 7.3 (7D175),关于基础配置部分,参考了Xcode6中搭建python开发环境的方法 环境搭建 1.找到电脑上安装Pyt ...

  7. xcode7中,无需证书即可进行真机编译调试!

    iOS开发总是面临一个问题,借不到机器进行测试,自己的机器又不能使用.每到这个时候我都在想,苹果什么时候给力一点? 现在,苹果终于给力了!Xcode7全新特性来袭,下面为大家介绍: 无需证书的真机编译 ...

  8. 关于Xcode7中的tbd文件

    tbd 是 text-based stub libraries的意思, 是苹果在Xcode7中使用的一个技术,便于减少Xcode7中SDK的体积. 下面讲解下Xcode7如何通过tbd这个技术减少SD ...

  9. Adobe秀出十大PS新神技,个个惊艳炸裂!

    本文经AI新媒体量子位(公众号ID:qbitai )授权转载,转载请联系出处 真的,说到P图,Adobe不是针对谁-- 这家已经发展成全家桶的公司,未来可能依然王旗不倒. 不信?他们刚刚秀出了基于人工 ...

最新文章

  1. POJ3045 Cow Acrobats —— 思维证明
  2. 硬件三人行-开关电源学习笔记-1
  3. boost::math::legendre_stieltjes用法的测试程序
  4. linux使用crontab命令定时重启服务器
  5. iOS NSNotificationCenter详解
  6. EasyDarwin开源流媒体服务器进行RTSP转发过程中将sdp由文件存储改成内存索引
  7. MYSQL数据库时间字段INT,TIMESTAMP,DATETIME性能效率比较
  8. java无锁消费者框架_无锁并行框架多生产者多消费者模型
  9. 线程---生产者消费者问题
  10. 电大管理英语4计算机期末考试,国开电大管理英语1单元自测4答案
  11. MeiZu Primary
  12. 阿里java面_我的后端Java面经、八面阿里,已拿offer!
  13. 无法更新标识列 wechatid_宿州售楼处精神堡垒生产厂家-弈博标识标牌制造
  14. Git下载安装及设置详细教程
  15. 写一篇靠谱的方案设计文档-之实践问题清单
  16. pyspark入门---机器学习实战预测婴儿出生率(二)使用ML库
  17. all boot options are tried的问题解决
  18. python和scre_前端大牛们都学过哪些东西?
  19. 风之大陆 服务器不稳定,【风之大陆】7月29日更新公告
  20. Golang并发编程入门教程

热门文章

  1. 上行参考信号-SRS
  2. STC89C52实现时钟功能
  3. 如何用计算机做微积分,利用计算知识搜索引擎WolframAlpha做微积分(快速指南).doc...
  4. SpringBoot(SpringMVC)拦截Druid数据监控页面
  5. kubernetes 通过环境变量向容器暴露 Pod 信息
  6. 危机来了?亚马逊在西雅图东区的摩天大厦们停工!
  7. 据说看懂这些故事的人 最后都成了亿万富翁
  8. 三大攻略破TD手机节能之困
  9. 腾讯、阿里、字节跳动三家公司有何区别!?
  10. app测试中ios和Android的区别: