RUM 赋能 iOS App 稳定:从异常体系到监控方案的全方位解析!
作者:高玉龙(元泊) 背景介绍 App 上线后,作为开发同学,最怕出现的情况就是应用崩溃了。但是,线下测试好好的 App,为什么上线后就发生崩溃了呢?这些崩溃日志信息是怎么采集的? 先看看几个常见的编写代码时的疏忽,是如何让应用崩溃的。 数组越界:在取数据索引时越界,App 会发生崩溃。 多线程问题:在子线程中进行 UI 更新可能会发生崩溃。多个线程进行数据的读取操作,因为处理时机不一致,比如有一个线程在置空数据的同时另一个线程在读取这个数据,可能会出现崩溃情况。 主线程无响应:如果主线程超过系统规定的时间无响应,就会被 Watchdog 杀掉。 野指针:指针指向一个已删除的对象访问内存区域时,会出现野指针崩溃。 为了解决这个问题,阿里云可观测研发团队进行了一些 iOS 异常监控方向的探索。 iOS 异常体系介绍 iOS 异常体系采用分层架构,从底层硬件到上层应用,异常在不同层次被捕获和处理。理解异常体系的分层结构,有助于我们更好地设计和实现异常监控方案。iOS 异常体系主要分为以下几个层次: 1. 硬件层异常 CPU 异常:由硬件直接产生的异常,如非法指令、内存访问错误等 这是最底层...