iOS KSCrash的使用

作者: Dosun | 来源:发表于2017-03-03 08:56 被阅读1491次

    KSCrash 是一个开源的第三方框架,可以将用户的崩溃日志以邮件发给你或者以发给我们提供的服务器,但是那个格式是jason格式,只有邮件可以设置成appStyle。如下我将讲述如何使用它吧。KSCrash代码,可以下载人家代码,但是那个代码不是最新的,我个人比较喜欢用Pod 导入,这样保证代码是最新的,Pod的安装和使用

    用KSCrash崩溃报告不是时时发,而是APP 崩溃时,将崩溃日志记录,第二次启动APP的时发送,但是腾讯Buglg可以做到时时发送崩溃报告,这样做很不安全,不建议这样做。因为崩溃时,APP本身处于不友好的环境,我们再做其他事情,容易造成死锁,下一次用户不能开动APP,很不好的用户体验。

    如下讲解将用户的崩溃日志,一种是发邮件给开发 和以发给服务器形式。

    第一种是可以将崩溃日志发到邮箱去

    - (KSCrashInstallation*) makeEmailInstallation
    {
    //开发者邮件地址
    NSString* emailAddress = @"oli_iosdeveloper@163.com";
    KSCrashInstallationEmail* email = [KSCrashInstallationEmail sharedInstance];
    email.recipients = @[emailAddress];
    email.subject = @"Crash Report";
    email.message = @"This is a crash report";
    email.filenameFmt = @"crash-report-%d.txt.gz";
    [email addConditionalAlertWithTitle:@"Crash Detected"
    message:@"The app crashed last time it was launched. Send a crash report?" yesAnswer:@"Sure!" noAnswer:@"No thanks"];
    // 如下代码是设置发送StyleApple 如果不加的话,会以jason的格式传给开发者。
    [email setReportStyle:KSCrashEmailReportStyleApple useDefaultFilenameFormat:YES];
    return email;
    }
    

    第二种是可以将崩溃日志发到贵司的服务器的

    - (KSCrashInstallation*) makeStandardInstallation
    {
    NSURL* url = [NSURL URLWithString:@"http://put.your.url.here"];//写入服务器的网址
    KSCrashInstallationStandard* standard = [KSCrashInstallationStandard sharedInstance];
    standard.url = url;
    return standard;
    }
    

    如下是两个格式的公共代码

    - (void) installCrashHandler
    {
    // Create an installation (choose one)
    //    KSCrashInstallation* installation = [self makeStandardInstallation];
    KSCrashInstallation* installation = [self makeEmailInstallation];
    
    // 安装异常处理者,越早安装越好
    // 如下将自动记录崩溃信息,但是它不会自动发送报告
    [installation install];
    // 此方法是确认崩溃报告发送后,如何处理旧的崩溃。
    [KSCrash sharedInstance].deleteBehaviorAfterSendAll = KSCDeleteNever; 
    // 发送崩溃日志
    [installation sendAllReportsWithCompletion:^(NSArray* reports, BOOL completed, NSError* error)
    {
    if(completed)
    {
    NSLog(@"Sent %d reports", (int)[reports count]);
    }
    else{
    NSLog(@"Failed to send reports: %@", error);
    }}];}
    

    我只是代码的搬运工,哈哈。最后不要尝试在 APP崩溃的时候,将崩溃日志发送出来,这样很有可能将呈现一个死循环,第二次根本无法启动APP。后续我将分享PLCrasher的用法,敬请期待。
    本人小白,望多指点!!感恩。
    May maker help us all!! Thank you a lot again!!

    相关文章

      网友评论

      • panv587:填写了邮箱后,却收不到邮件,你遇到了吗?
        红发_KVO:提示This device is not configured to send email,手机上要配置邮箱,最好不是要接收的邮箱是吧?
        panv587:@Dosun 刚刚按照你说的,配置成功了,谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢:clap: 谢谢:clap:
        Dosun:@M13M13 你苹果手机有设置自己邮箱没,意思就是说你邮箱在手机上是上线的

      本文标题:iOS KSCrash的使用

      本文链接:https://www.haomeiwen.com/subject/yfbhgttx.html