1.cocoapods安装以下类库
pod 'JJException'
遵循协议 JJExceptionHandle
pod 'Bugly', '~> 2.5.71'
2.AppDelegate 导入头文件
#import <JJException.h>
#import <Bugly/Bugly.h>
3. didFinishLaunchingWithOptions 正式环境开启防崩溃
配置
#ifdef RELEASE // 开启防崩溃 [JJException configExceptionCategory:JJExceptionGuardAll]; [JJException startGuardException]; [JJException registerExceptionHandle:self]; #endif
配置bugly
//配置bugly(模拟器和debug 不上传bug) #ifndef DEBUG if (![[UIDevice currentDevice] isSimulator]) { [self configBugly]; } #endif
- (void)setBuglyUserInfo { [Bugly setUserIdentifier:@"传用户id"]; [Bugly setUserValue:@"传用户手机号" forKey:@"UserMobile"]; [Bugly setUserValue:@"传用户名" forKey:@"UserName"]; [Bugly setUserValue:@"传正式环境还是测试环境" forKey:@"Environment"]; } - (void)configBugly { [self setBuglyUserInfo]; //用户登录成功后 需要重新上传userid 需要发送通知 这边才能更新 注意注意 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setBuglyUserInfo) name:kLoginSuccessNotification object:nil]; //初始化 Bugly 异常上报 BuglyConfig *config = [[BuglyConfig alloc] init]; config.debugMode = NO; config.reportLogLevel = BuglyLogLevelVerbose; [Bugly startWithAppId:@"传bugly申请的应用appid" #ifndef RELEASE developmentDevice:YES #endif config:config]; }
在代理方法里上报异常
//JJException 防崩溃代理 - (void)handleCrashException:(nonnull NSString *)exceptionMessage extraInfo:(nullable NSDictionary *)info { NSLog(@"App Crash------------ %@", [NSException exceptionWithName:@"AvoidCrash" reason:exceptionMessage userInfo:info]); [Bugly reportException:[NSException exceptionWithName:@"AvoidCrash" reason:exceptionMessage userInfo:info]]; }