一、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
-
使用
- 到官网申请使用
- 下载MAC客户端,添加工程
- 配置Crashlytics相关的库
- 像配置第三方sdk一样导入,编写相关注册代码
- 完成
-
原理
- 集成sdk时,会收集Crash信息和上传
- 上传对应的DSYM文件(只有通过该文件,才能将Crash日志还原成可读的Call Stack信息)
-
好处
- 可以像bug管理工具一样,管理崩溃日志
- 更多的诊断信息,如是否越狱、系统版本、当时的内存量等
- 公司更有操守
七、参考博客地址