不用第三方bug统计该如何骚操作

前言

每次线上都会有些崩溃记录在友盟,但是这些崩溃日志并不好查找崩溃的原因,我就在想有没有好一点的方法.

错误的异想天开的做法

当时想着是是根据OC语言的消息转发原理,将那三个消息转发的方法利用运行时进行注入自己的代码.简单的做法就是将NSObject的分类利用runtime进行方法交换.

问题所在

这个方法经过试验,比如测试越界等等确实能走到自己写的方法里,但是正常的消息转发也会被记录,这并不是一件好事!

正确而简单的做法

查阅了些文章,发现iOS是提供了这样的函数回调的,写起来很简单,但是发现和第三方缺陷收集平台收集的信息差不多.具体做法如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Override point for customization after application launch.
        
        NSSetUncaughtExceptionHandler(&my_uncaught_exception_handler);
        return YES;
    }

    static void my_uncaught_exception_handler (NSException *exception) {
        //这里可以取到 NSException 信息
        NSLog(@"***********************************************");
        NSLog(@"%@",exception);
        NSLog(@"%@",exception.callStackReturnAddresses);
        NSLog(@"%@",exception.callStackSymbols);
        NSLog(@"***********************************************");
    }

AppDelegate里注册自己的函数,在这里你可以本机记录崩溃,看自己的需求了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,588评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,268评论 19 139
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,856评论 0 9
  • 在练字
    无关风月夜阅读 198评论 0 0
  • 一 最近各大城市纷纷报道A市有许多女学生莫名失踪,小至十六七岁的高中生,大至二十多岁的大学生,失踪的净是些正值青春...
    Vesper_Xiao阅读 301评论 2 2