ios 知识点程序员iOS Developer

手把手教你使用Bugly收集线上崩溃信息

2017-12-22  本文已影响161人  小蠢驴打代码
made in 小蠢驴的crash.jpg

Bugly集成导入步骤

  1. pod 'BuglyHotfix' (手动导入比较麻烦)
  2. import 'JPEngine.h' (该文件在JSPatch文件夹中)
  3. 在appdelegate.m文件的 didFinishLaunchingWithOptions 方法中,对bugly进行初始化

JSPatch 文件夹要手动获取,要么去bugly官方说明文档下载,或者:

1.下载iOS - sdk包 2.把如图所示的JSPatch文件拖入项目

didFinishLaunchingWithOptions 中的初始化bugly方法

{
    //初始化 Bugly 异常上报
    BuglyConfig *config = [[BuglyConfig alloc] init];
    config.delegate = self;
    config.debugMode = YES;
    config.reportLogLevel = BuglyLogLevelWarn;
    
    //这里替换自己的appID
    [Bugly startWithAppId:@"07792e0d22"
#if DEBUG
        developmentDevice:YES
#endif
                   config:config];
    
    //捕获 JSPatch 异常并上报
    [JPEngine handleException:^(NSString *msg) {
        NSException *jspatchException = [NSException exceptionWithName:@"Hotfix Exception" reason:msg userInfo:nil];
        [Bugly reportException:jspatchException];
    }];
    //检测补丁策略
    [[BuglyMender sharedMender] checkRemoteConfigWithEventHandler:^(BuglyHotfixEvent event, NSDictionary *patchInfo) {
        //有新补丁或本地补丁状态正常
        if (event == BuglyHotfixEventPatchValid || event == BuglyHotfixEventNewPatch) {
            //获取本地补丁路径
            NSString *patchDirectory = [[BuglyMender sharedMender] patchDirectory];
            if (patchDirectory) {
                //指定执行的 js 脚本文件名
                NSString *patchFileName = @"main.js";
                NSString *patchFile = [patchDirectory stringByAppendingPathComponent:patchFileName];
                //执行补丁加载并上报激活状态
                if ([[NSFileManager defaultManager] fileExistsAtPath:patchFile] &&
                    [JPEngine evaluateScriptWithPath:patchFile] != nil) {
                    BLYLogInfo(@"evaluateScript success");
                    [[BuglyMender sharedMender] reportPatchStatus:BuglyHotfixPatchStatusActiveSucess];
                }else {
                    BLYLogInfo(@"evaluateScript failed");
                    [[BuglyMender sharedMender] reportPatchStatus:BuglyHotfixPatchStatusActiveFail];
                }
            }
        }
    }];
}

上述基础步骤,在bugly的官方文档中都有说明,接下去是重点了


  1. 如何获取到app的崩溃信息
- (void)clickCrashBtn{
    //声明一个方法,按钮一调用,就会crash
    NSString *value = nil;
    NSDictionary *dic = @{@"key":value};
}
3.png

如图,我们发现程序crash了,默认的bugly是会收集程序的crash信息的,我们登录bugly后台看看

4.png

发现并没有手机到crash信息,难道我们设置错误了?

真机crash演示.gif

解释下真机操作的步骤 - 1.打开buglyDemo;2-点击‘crash测试’

5.png

登录bugly后台,发现捕捉到了我们的程序crash,而且包括调用的方法,错误原因,都显示了出来。


华丽分割线 - 进阶用法 :捕捉非crash信息
6.png 7.png

1.要开启日志功能,记得修改默认的reportLogLever

    //BuglyLogLevelSilent 替换成 BuglyLogLevelWarn - 开启日志收集功能
    config.reportLogLevel = BuglyLogLevelWarn;

2.设置错误上传

8.png

如图,其实异常上传或者错误上传等等,有多种标签可以设置,这里我们就先以异常上传 reportException来举个

上一篇下一篇

猜你喜欢

热点阅读