利用 NSSetUncaughtExceptionHandler,当程序异常退出的时候,就给指定的邮箱发送邮件,邮件内容包括发生异常时候的详情。代码如下:
- void UncaughtExceptionHandler(NSException *exception) {
- NSArray *arr = [exception callStackSymbols];
- NSString *reason = [exception reason];
- NSString *name = [exception name];
- NSString *urlStr = [NSString stringWithFormat:@"mailto://uuuu@163.com?subject=bug报告&body=感谢您的配合!<br><br><br>"
- "错误详情:<br>%@<br>--------------------------<br>%@<br>---------------------<br>%@",
- name,reason,[arr componentsJoinedByString:@"<br>"]];
- NSURL *url = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
- [[UIApplication sharedApplication] openURL:url];
- }
然后在delegate文件里面
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
函数里面添加
- NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler);
注意:这个功能前提是 你必须在ios 的mail 设置了邮箱