从容的对面程序崩溃

2017-10-19  本文已影响116人  AppleTTT

从容的对面程序崩溃

记得有一次面试的时候,面试官问我,如果有用户在生产环境中使用 App 的时候,突然偶发崩溃,但是无法重现,公司的测试在测试过程中也无法复现此问题,那么你要如何解决这样的问题,我当时想的是我们需要收集崩溃时的堆栈信息,然后发送到服务器,由于并不知道如何获取堆栈信息,因此这道题并没有答好;大多数时候,我们可能用的是像 Bugly ,听云这样第三方的 SDK 帮我们收集这些符号信息,然后找到某个时候的奔溃信息,但是并不知道具体的实现原理,最近又看到了一篇类似的博客,搜了一下之后,发现大家写出来的东西都是一样的(搜索国内的博客基本上都这样),而且并没有具体说明是如何操作的,所有就深入了解了下,当我们面对用户使用过程中的奔溃,需要如何去处理。

异常崩溃的种类和处理方法

出现崩溃会有两种原因,第一种是 NSException 捕获的异常 ,一种是由 系统发出的崩溃信号量 导致的。

如果有想深入了解的,可以看下KSCrash的使用以及阅读KSCrash 的源码,可能会让你对异常的捕获有更加深入的认识。

参考链接:
1. 使用signal让app能够在从容崩溃
2. 使用backtrace获取堆栈信息
3. ios 的异常处理
4. 漫谈iOS Crash收集框架
5. 获取任意线程调用栈的那些事

上一篇 下一篇

猜你喜欢

热点阅读