iOS 基于 Swizzle Method的Crash 防护组件

前言

    出于需要,查找资料编写了WOCrashProtector组件。

    WOCrashProtector是一个无侵入的 iOS crash 防护框架,基于 Swizzle Method 的 Crash 防护。能有效的防止代码潜在的crash,自动在app运行时实时捕获导致app崩溃的破环因子,使app避免崩溃,照样可以继续正常运行。 主要参考了《大白健康系统--iOS APP运行时Crash自动修复系统》此文,以及AvoidCrash、QYCrashProtector、NeverCrash这三个框架编写而成。更多内容请看项目吧。

功能

unrecognized selector crash

KVO、KVC crash

NSNotification crash

NSTimer crash

Container crash(数组越界,插nil,字典objc、key为nil等)

NSString crash(字符串截取越界等)

NSAttributedString

使用方法

导入#import "WOCrashProtectorManager.h"

iOS 基于 Swizzle Method的Crash 防护组件_第1张图片
使用方法

crash log日志输出:

iOS 基于 Swizzle Method的Crash 防护组件_第2张图片
cras log日志

版本适配

系统支持 iOS 8.0 ~ iOS 11.2

注意事项

** 建议实际开发的时候关闭该组件,以便及时发现crash bug,需要上架或者演示的时候开启crash防护组件。 **

该组件中使用了@try@catch捕捉crash会占用极少量内存,不过正常情况下不影响性能。

目前尚未测试其他第三方框架共同使用时是否存在冲突的情况,如bugly、友盟等。

如果您发现了问题希望能issue,大家一起来解决问题 ^_^

你可能感兴趣的:(iOS 基于 Swizzle Method的Crash 防护组件)