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!!