iOS开发:崩溃捕获

崩溃的捕获 需要在AppDelegate中注册并实现方法即可。


1:注册

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

NSSetUncaughtExceptionHandler(handleExceptionAndTalk);

return YES;

}

2:实现handleExceptionAndTalk方法

void handleExceptionAndTalk(NSException *exception){

NSString *content = [NSString stringWithFormat:@"========异常错误报告========\nname:%@\nreason:\n%@\ncallStackSymbols:\n%@",name,reason,[callStack componentsJoinedByString:@"\n"]];

//保存异常信息

NSMutableDictionary *info = [NSMutableDictionary dictionary];

info[@"name"] = [exception name];                          // 异常名字

info[@"reason"] = [exception reason];                      // 异常描述(报错理由)

info[@"callStackSymbols"] = [exception callStackSymbols];  // 调用栈信息(错误来源于哪个方法)

//写入沙盒

NSString *path =[NSHomeDirectory() stringByAppendingString:@"/crash.plist"];

[info writeToFile:path atomically:YES];

//  把异常崩溃信息发送至开发者邮件

NSMutableString *mailUrl = [NSMutableString string];

[mailUrl appendString:@"mailto:test@qq.com"];

[mailUrl appendString:@"?subject=程序异常崩溃,请配合发送异常报告,谢谢合作!"];

[mailUrl appendFormat:@"&body=%@", content];

// 打开地址

NSString *mailPath = [mailUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailPath]];

}

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

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,854评论 19 139
  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 4,816评论 1 6
  • 最近项目上需要对崩溃信息进行处理,要满足崩溃后及时捕捉到崩溃信息,当应用下次打开后再将报文上传至服务器...
    迷失之刃阅读 10,166评论 9 8
  • 等了一年,新一季冰火终于出来了!虽说这两季剧情都是由编剧操刀,已经和原著没多大关系了,但仍旧精彩到爆啊!!! 我们...
    谢嘉宝阅读 3,547评论 1 3
  • 2011年12月20日 后来,在你的直板手机屏幕上,看到了那个女生,当时就觉得人家特漂亮,再看看自己,姿色平平,所...
    99709a08cec2阅读 1,562评论 0 0

友情链接更多精彩内容