iOS应用常见的崩溃原因主要包括四类。第一是数组越界,在取数据索引时超出数组范围会直接导致App崩溃。第二是多线程问题,包括在子线程中进行UI更新,以及多个线程同时对数据进行读写操作时因处理时机不一致而崩溃,比如一个线程置空数据的同时另一个线程在读取该数据。第三是主线程无响应,如果主线程超过系统规定的时间无响应会被Watchdog机制杀掉进程。第四是野指针,当指针指向一个已被删除的对象并尝试访问该内存区域时会产生野指针崩溃。这些问题在线下测试时可能不容易复现,但在线上复杂环境下会频繁出现,因此需要完善的崩溃监控体系来捕获和分析。




