淡写iOS NSException收集崩溃日志

在程序运行的那个方法里面写一个监听事件 NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);

//崩溃日志  然后实现监听的方法

voidUncaughtExceptionHandler(NSException*exception) {

NSArray*arr = [exceptioncallStackSymbols];//得到当前调用栈信息

NSString*reason = [exceptionreason];//非常重要,就是崩溃的原因

NSString*name = [exceptionname];//异常类型

NSLog(@"招用: %@ \n招用:原因: %@ \n招用:类型: %@", name, reason, arr);

}

获取到了崩溃的日子,如何发送给开发者呢,目前一般有以下两种方式:

1. 将崩溃信息持久化在本地,下次程序启动时,将崩溃信息作为日志发送给开发者。

通过邮件发送给开发者。 不过此种方式需要得到用户的许可,因为iOS不能后台发送短信或者邮件,会弹出发送邮件的界面,只有用户点击了发送才可发送。 不过,此种方式最符合苹果的以用户至上的原则。

发送邮件代码也很简单:

NSString *crashLogInfo = [NSString stringWithFormat:@”exception type : %@ \n crash reason : %@ \n call stack info : %@”, name, reason, arr];

NSString *urlStr = [NSString stringWithFormat:@”mailto://tianranwuwai@yeah.net?subject=bug报告&body=感谢您的配合!

“错误详情:%@”,

crashLogInfo];

NSURL *url = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

[[UIApplication sharedApplication] openURL:url];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 9,230评论 2 7
  • 我们这里介绍两中方法,一种通过后台写接口,另一种是通过用户来给开发者发邮件的形式来分析崩溃信息。下面开始介绍第一种...
    EncourageMan阅读 4,035评论 0 2
  • 前言 崩溃是让发人员比较头痛的事情,app崩溃了,说明代码写的有问题,这时如何快速定位到崩溃的地方很重要。调试阶段...
    進无尽阅读 6,306评论 0 9
  • 之前听到朋友面试iOS开发时候,被问到关于已发布程序崩溃的时候怎么处理? 我说很简单吖,友盟还有一些第三方框架都可...
    白屏阅读 4,980评论 2 49
  • iOS开发中遇到程序崩溃是很正常的事情,如何在程序崩溃时捕获到异常信息并通知开发者,是大多数软件都选择的方法。下面...
    Courage_SC阅读 6,955评论 9 7

友情链接更多精彩内容