LSSafeProtector 是一个可快速集成但功能强大的防止crash库,不改变原代码支持KVO自释放,可以检测到dealloc时未释放的kvo,等19种crash,使用Objective-C编写.可以让程序出现异常的时候不闪退,提高程序的健壮性。
一、CocoaPods 安装
1.在 Podfile 中添加 pod ‘LSSafeProtector’。
2.执行 pod install 或 pod update。(如搜索不到,请更新pod仓库pod repo update)。
3.导入 “LSSafeProtector.h”。
二、开启防止闪退功能
Debug模式:会打印crash日志,同时会利用断言来让程序闪退,也会回调block
Release模式:既不打印也不会断言闪退,会回调block,自己可以上传exception
(注意线上环境isDebug一定要设置为NO)
三、配合Bugly使用
[LSSafeProtector openSafeProtectorWithIsDebug:NO block:^(NSException *exception, LSSafeProtectorCrashType crashType) {
//[Bugly reportException:exception];
//此方法相对于上面的方法,好处在于bugly后台查看bug崩溃位置时,不用点击跟踪数据,再点击crash_attach.log,查看里面的额外信息来查看崩溃位置
[Bugly reportExceptionWithCategory:3 name:exception.name reason:[NSString stringWithFormat:@"%@ 崩溃位置:%@",exception.reason,exception.userInfo[@"location"]] callStack:@[exception.userInfo[@"callStackSymbols"]] extraInfo:exception.userInfo terminateApp:NO];
}];
//打开KVO添加,移除的日志信息
[LSSafeProtector setLogEnable:YES];
四、Bugly框架
腾讯Bugly,为移动开发者提供专业的异常上报和运营统计,帮助开发者快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈。
当没有使用这个框架的时候程序崩溃
当使用这个框架的时候程序崩溃
总结来说,这双剑合璧是极大程度保护了我们的软件以及定位和解决bug。
- 本文作者: Grx
- 本文链接: https://ruixiaoguo.github.io/Grx.github.io/Grx.github.io/2022/06/11/ios防crash崩溃-LSSafeProtector/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!