子模块功能 | 下发值 | 含义 |
USEL | 1(1<<0) | Unrecognized Selector防护。 防护因调用未实现方法造成的崩溃。 |
Container | 2(1<<1) | 容器防护。 防护Foundation基础类型(NSString、NSMutableString、NSAttributedString、NSMutableAttributedString、NSArray、NSMutableArray、NSDictionary、NSMutableDictionary)的常用方法,可以防护由于传参不当(比如:数组越界、参数为空等)导致的崩溃。 |
Notification | 4(1<<2) | 通知中心防护。 |
KVO | 8(1<<3) | 系统提供的监听某一对象属相变化的功能,但在使用中可能存在诸多隐藏问题,KVO防护就是针对该类型的防护。 |
KVC | 16(1<<4) | 利用运行时获取和设置参数的一种方式,使用中若操作的对象不存在对应的key则会造成崩溃,KVC防护就是针对该类型的防护。 |
NSUserefaults | 32(1<<5) | 对NSUserefaults进行防护,防止因写入非标准类型造成的崩溃。 |
模式 | 平台字段 | 默认状态 |
严格模式 | 优先保证数组索引的正确性。创建数组时,若传入的值包含空值,则创建的数组为空。 NSString *strValue = nil; NSArray *arr = @[strValue, @"str1"]; // arr的结果为nil | ✔ |
兼容模式 | 优先保证数组创建成功。创建数组时,若传入的值包含空值,则剔除其中的空值,并创建数组。 NSString *strValue = nil; NSArray *arr = @[strValue, @"str1"]; // arr的结果为@[@"str1"] | ✘ |
指标 | 说明 |
拦截崩溃次数 | 已成功拦截的崩溃的次数 |
拦截崩溃率 | 筛选条件下的拦截崩溃次数/筛选条件下的总launch数 |
拦截崩溃人数 | 筛选条件下的去重拦截崩溃人数 |
拦截崩溃用户比例 | 筛选条件下发生拦截崩溃错误的去重UV数/筛选条件下的去重总UV数 |
用户数 | 筛选条件下已拦截崩溃的去重UV数 |
Key | Value |
reason | 根据现场情况分析给的结果 |
protect_type | 防护崩溃的类型所在的子模块 |