利用IOS的异常处理机制来做崩溃统计分析
来源:互联网 发布:cms系统需求文档 编辑:程序博客网 时间:2024/06/16 03:37
前言:
先简单的介绍一下IOS中对异常的一些处理
抛出异常:
- @throw //后面写出异常后执行的操作
- 利用NSException的两个类方法
+ (void)raise:(NSString *)name format:(NSString *)format, ... NS_FORMAT_FUNCTION(2,3);+ (void)raise:(NSString *)name format:(NSString *)format arguments:(va_list)argList NS_FORMAT_FUNCTION(2,0);
正文
在我们APP的开发中,当时时常也会遇到程序运行后,异常的错误(报错是红色,异常是绿色)。但是在真机模拟中,如果有异常,APP就直接崩溃了,也就是我们说的闪退。当产品上线后,为了更好的收集用户的崩溃信息,提供给用户更好的用户体验。我们就要收集APP的崩溃信息来做数据统计,以便下一次更新迭代来修复BUG。
那么我们怎么来做到这个崩溃统计呢,其实主要分两步
- 在用户APP抛出异常的时候,我们捕获到异常,并立即写入沙盒中。
当用户每次运行APP时,我们将这个收集到的异常文件发送至服务器。
我们通常将这一步放在AppDelegate中。因为这样可以获取到全局的崩溃信息,其次每次程序启动都会进入到AppDelegate的这个方法中:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
return YES;
}
下面看具体代码及介绍
//每次一捕捉到异常,这个函数将被调用void handlerException (NSException *Exception) { NSMutableDictionary *info = [NSMutableDictionary dictionary]; info[@"callStackSymbols"] = [Exception callStackSymbols]; //调用栈信息 info[@"name"] = [Exception name]; //报错名称 info[@"reason"] = [Exception reason]; //报错名称 NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO); NSString *path = [[pathArray lastObject] stringByAppendingString:@"Exception.txt"]; [info writeToFile:path atomically:YES];} 1. (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. //这里在捕捉异常信息,一旦捕捉到就调用handlerException方法 NSUncaughtExceptionHandler(handlerException); // 这里可以做一些文件上传的数据操作 // 在此就不多做赘述了 // // // return YES;}
当然现在大部分都不在APP里这样做统计分析了,大多都是用统计分析平台来做。下面安利给大家主流的三个崩溃统计平台
- 友盟
- Flurry
- Crashlytics
当然,友盟是国产,下面两个是国外的。英语八级可以考虑下面两个~~~~
如有出错地方,请在博客回复中指出,谢谢各位看官。
0 0
- 利用IOS的异常处理机制来做崩溃统计分析
- IOS崩溃异常的处理
- iOS崩溃异常处理
- IOS崩溃 异常处理
- IOS崩溃 异常处理(NSSetUncaughtExceptionHandler)
- IOS崩溃 异常处理(NSSetUncaughtExceptionHandler)
- IOS崩溃 异常处理(NSSetUncaughtExceptionHandler)
- IOS崩溃 异常处理(NSSetUncaughtExceptionHandler)
- iOS崩溃 捕获异常处理
- iOS崩溃 捕获异常处理
- IOS崩溃 异常处理(NSSetUncaughtExceptionHandler)
- iOS崩溃 捕获异常处理
- iOS崩溃 捕获异常处理
- iOS小技巧 - 崩溃统计分析
- iOS异常处理机制
- iOS 异常处理机制
- 崩溃异常的捕获处理
- iOS崩溃 捕获异常处理(二)
- mysql忘记root密码
- Layer 1: 深入分析Parquet列式存储格式
- 演示获取请求头信息
- 改革春风吹满地 计算几何
- LeetCode——022
- 利用IOS的异常处理机制来做崩溃统计分析
- 敏捷开发下, 由 User Story 中设计: 保证数据一致性的数据库表结构
- 众测(Alltesting)---一款专业海量的第三方测试服务平台
- HDU 1021 Fibonacci Again(斐波那契数列+mod规律)
- 【USACO题库】3.3.1 Riding the Fences骑马修栅栏
- 浙大 PAT Adavnced level 1003. Emergency
- maven基础使用总结
- 信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logge
- Code Force 21B Intersection