连续闪退设计方案
一、概要
1.背景
用户在使用APP时,在启动阶段crash,将根本无法使用。重启的条件下也无法正常使用的情况,也就称为连续闪退。在这种情况下就需要一种机制去保护并修复它,确保APP可以正常使用。
2.发生条件
连续闪退的发生原因可能有如下:
- 数据库损坏:在日常使用如异常退出、断电,或者错误的操作。
- 文件损坏:处理文件时如果没有@try…catch,损坏文件会抛出NSException导致 crash。
- 网络返回数据处理异常:比如预期返回数组,但实际返回了字典或返回破损的 Tar 包,在解压失败导致 crash。
- 代码 bug:当必 crash 的代码出现在启动关键路径中。
- 内存不足: 删除缓存的资源。
- 超时: 启动时间过长等。
3.修复处理
在发生连续闪退下,可以尝试
- 通过工具修复DB,或者删除DB
- 删除文件,沙盒内容, userdefaults