美文网首页
iOS 奔溃千奇百怪,如何全面监控

iOS 奔溃千奇百怪,如何全面监控

作者: 高乔人 | 来源:发表于2019-04-15 15:09 被阅读0次

APP上线后,是很脆弱的,导致其奔溃的问题,不近包括编写代码时的各种小马虎,还包括那些被系统强杀的疑难杂症。
下面,我们就先看看几个常见的编写代码时的小马虎,如何让应用奔溃的。
1.数据越界:在读取索引时越界,APP会发生奔溃,还有一个情况,就是给数组添加了nil,会奔溃。
2.多线程问题:在子线程中进行UI更新可能会发生奔溃,多个线程进行数据的读取操作,因为处理时机制不一致,比如有一个线程在置空数据的同事另一个线程在读取这个数据,可能会出现奔溃情况。
3.主线程无响应:如果主线程超过系统规定的时间无反应,就会被watchchdog杀掉,这时,奔溃问题对应的异常编码是0x8badf00d。
4.野指针:指针指向另一个已删除的对象访问内存区域时,野指针需要我们重点关注,因为他是导致APP奔溃的最常见,也是最难定位的一种,情况。
但是,崩溃信息的收集却并没有那么简单。因为,有些崩溃日志是可以通过信号捕捉到的,而很多奔溃日志确实通过信号捕捉不到的。
常见的奔溃情况:KVO问题,NSNotification,线程问题,数组越界,野指针等奔溃信息,是可以通过信号捕获的。
但是想后台任务超时,内存被打爆,主线程克顿超过值等信息,是无法通过信号捕捉到的。
收集奔溃日志最简单的方法,就是打开XCode 的菜单选择 product ->archive,然后在提交时选上 upload your app's symbols to receive symbolicated reports from apple 以后 就可以直接在xcode的archive里看到符号化的奔溃日志了。还有一直第三方工具:PLCrashReporter获取奔溃日志,然后上传到自己的服务器进行监控。

相关文章

网友评论

      本文标题:iOS 奔溃千奇百怪,如何全面监控

      本文链接:https://www.haomeiwen.com/subject/eqyuwqtx.html