博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 崩溃分析
阅读量:6406 次
发布时间:2019-06-23

本文共 1569 字,大约阅读时间需要 5 分钟。

崩溃统计分析,在APP中是非常常见一种优化APP,发现APP的BUG的方式。

1.异常处理

可通过try catch 方式处理,如果发生异常,会走catch ,最终走fianlly。对一些我们不想他崩溃的地方,可以采取这种方式去处理。但要注意的是,通过这种处理,使用的第三方崩溃将捕捉不到异常信息,不会上报。

@try {        <#Code that can potentially throw an exception#>    } @catch (NSException *exception) {        <#Handle an exception thrown in the @try block#>    } @finally {        <#Code that gets executed whether or not an exception is thrown#>    }

2.异常信息打印与拦截

在开发过程中,我们想自己捕捉异常处理,那么,可以通过最简单的一种方式处理,直接在main.m中try catch,在catch中将数据先存在本地,隔一段时间或者APP进入后台时,上报给服务器。

main.m

@try {        @autoreleasepool {            return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));        }    } @catch (NSException *exception) {        NSLog(@"main------%@", [exception callStackSymbols]);    }

但这种方式,个人感觉并不好。实际上,我们可以在AppDelegate.m中处理,在didFinishLaunchingWithOptions中设置异常回调,回调里面,处理相关的异常。

流程是:发生异常-->handleException-->main.h 

void handleException(NSException *exception){    NSMutableDictionary *info = [NSMutableDictionary dictionary];    info[@"callStack"] = [exception callStackSymbols]; // 调用栈信息(错误来源于哪个方法)    info[@"name"] = [exception name]; // 异常名字    info[@"reason"] = [exception reason]; // 异常描述(报错理由)}- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    // Override point for customization after application launch.        // 将沙盒中的错误信息传递给服务器        // 设置捕捉异常的回调    NSSetUncaughtExceptionHandler(handleException);        return YES;}

上面的方法都是对异常的一些分析以处理,实际开发中,我们一般都是使用第三方库记录和分析BUG。

崩溃分析统计

 * 1.友盟

*  2.腾讯bugly

 * 3.Flurry

 * 4.Crashlytics

 

转载地址:http://cbxea.baihongyu.com/

你可能感兴趣的文章
sqlloader外部表
查看>>
golang笔记——数组与切片
查看>>
屏蔽可忽略的js脚本错误
查看>>
散文分享
查看>>
【Vue】vue.js常用指令
查看>>
NFS学习
查看>>
MySql常用命令总结
查看>>
又一年...
查看>>
文件上传框的美化+预览+ajax
查看>>
Linux VFS
查看>>
ext不能选中复制属性_如何实现Extjs的grid单元格只让选择(即可以复制单元格内容)但是不让修改?...
查看>>
python中print的作用*8、不能+8_在 Python 3.x 中语句 print(*[1,2,3]) 不能正确执行。 (1.0分)_学小易找答案...
查看>>
python 生成html代码_使用Python Markdown 生成 html
查看>>
axure如何导出原件_Axure 教程:轻松导出图标字体所有图标
查看>>
laravel input值必须不等于0_框架不提供,动手造一个:Laravel表单验证自定义用法...
查看>>
cad填充图案乱理石_太快了吧!原来大神是这样用CAD图案填充的
查看>>
activator.createinstance 需要垃圾回收么_在垃圾回收器中有哪几种判断是否需要被回收的方法...
查看>>
rocketmq 消息指定_RocketMQ入坑系列(一)角色介绍及基本使用
查看>>
redis zset转set 反序列化失败_掌握好Redis的数据类型,面试心里有底了
查看>>
p图软件pⅰc_娱乐圈最塑料的夫妻,P图永远只P自己,太精彩了吧!
查看>>