iOS 捕获Crash 发送Bug邮件

在开发过程中,通过在AppDelegate.m文件中添加特定代码,实现异常捕获并引导用户发送包含详细信息的邮件进行反馈。此过程有助于开发团队迅速定位问题所在,进而快速解决Bug,显著提升用户体验。

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

 在开发过程中,我们有时候会留下Bug,用户在使用我们的app 的时候,有时会出现闪退,这时候我们可以让用户给我们发送邮件,以让我们开发人员更加快速的地位到Bug的所在,以最快的时间解决,同时也提高用户体验。

       在AppDelegate.m文件中,添加如下代码:

  1. NSUncaughtExceptionHandler* _uncaughtExceptionHandler = nil;  
  2. void UncaughtExceptionHandler(NSException *exception) {  
  3.     NSLog(@"CRASH: %@", exception);  
  4.     NSLog(@"Stack Trace: %@", [exception callStackSymbols]);  
  5.       
  6.     // 异常的堆栈信息  
  7.     NSArray *stackArray = [exception callStackSymbols];  
  8.     // 出现异常的原因  
  9.     NSString *reason = [exception reason];  
  10.     // 异常名称  
  11.     NSString *name = [exception name];  
  12.       
  13.     NSString *syserror = [NSString stringWithFormat:@"mailto://787887347@qq.com?subject=bug报告&body=感谢您的配合!<br><br><br>"  
  14.                           "Error Detail:<br>%@<br>--------------------------<br>%@<br>---------------------<br>%@",  
  15.                           name,reason,[stackArray componentsJoinedByString:@"<br>"]];  
  16.       
  17.     NSURL *url = [NSURL URLWithString:[syserror stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];  
  18.     [[UIApplication sharedApplication] openURL:url];  
  19.     return;  
  20. }  
   然后在  - (   BOOL   )application:(   UIApplication   *)application didFinishLaunchingWithOptions:(   NSDictionary   *)launchOptions方法中添加一下代码:

  1. // 保存系统处理异常的Handler  
  2.     _uncaughtExceptionHandler = NSGetUncaughtExceptionHandler();  
  3.       
  4.     // 设置处理异常的Handler  
  5.     NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);  
    那么在我们的应用程序遇到闪退的时候,就会帮用户打开发送邮件功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值