kscrash 指定参数发往 自己服务器,iOS KSCrash的使用

这篇博客介绍了如何利用开源框架KSCrash来收集和发送iOS应用的崩溃日志。作者建议通过Pod导入以确保获取最新代码,并对比了邮件发送和服务器上传两种方式。邮件发送可以设置为Apple风格的日志格式,而服务器上传则直接发送到指定URL。值得注意的是,崩溃时不应立即发送报告,以防造成死锁。最后,作者提醒不要尝试在APP崩溃时发送日志,并预告将分享关于PLCrasher的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值