长路漫漫,唯剑作伴--Crash

一、Exception breakpoint

  

  使用Exceptions Breakpoint的时候发现,如果将Exceptions设置为All,会导致应用在main()函数里面崩溃,避免这个问题的方法是将Exception更改为Objective-C.

二、Symbolic Breakpoint

  

  在 Symbol 一栏输入 viewDidLoad。这样一来,在程序中所有的 viewDidLoad 方法被调用时都会触发断点。

  我们也可以仅仅为特定的某个类的方法添加断点。在 Symbol 一栏输入 [ClassName viewDidLoad] (Objective-C) 或 ClassName.viewDidLoad (Swift) 即可。

三、监控断点

  我们调试程序的大部分时候都是为了监控某个变量的变化,在代码中变量出现的地方添加断点不仅累而且还可能漏掉,事后还得一个一个删掉,实在很累。

  找到变量第一次出现的地方,添加一个普通断点,进入 debug 模式后在 Variables View 中右键变量,选择 Watch 变量名。这样,每一次该变量被改变都会触发断点告知我们。

四、Edit Breakpoint

  在如下代码中添加一个普通的断点,选择 Edit Breakpoint,然后点击 Add Action,选择 Log Message,在输入框中输入 The number is: @number@

  

  运行效果如下图所示

      

五、崩溃日志的获取

  1、用户提供

    当用户抱怨闪退时,你可以要求他让设备与iTunes同步,并根据操作系统的不同,到上述位置把崩溃日志下载下来,然后通过电子邮件发送给你。
    你必需尽量获取用户设备生成的所有崩溃日志。因为崩溃日志越多,就越容易诊断问题所在!

  2、Xcode获取

    Organizer--》Device

    

  3、iTunes

    登录 iTunes Connect 上, 选择Manage Your Applications,

 

 六、Crashlytics

  1. 使用 

    1. 到官网申请使用
    2. 下载MAC客户端,添加工程
    3. 配置Crashlytics相关的库
    4. 像配置第三方sdk一样导入,编写相关注册代码
    5. 完成
        
  2. 原理

    1. 集成sdk时,会收集Crash信息和上传
    2. 上传对应的DSYM文件(只有通过该文件,才能将Crash日志还原成可读的Call Stack信息)
  3. 好处

    1. 可以像bug管理工具一样,管理崩溃日志
    2. 更多的诊断信息,如是否越狱、系统版本、当时的内存量等
    3. 公司更有操守

 七、参考博客地址

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-03-31 02:04  来事啊  阅读(203)  评论(0编辑  收藏  举报