美文网首页业务方案iOS-Crash处理
不用第三方bug统计该如何骚操作

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

作者: Link913 | 来源:发表于2017-10-25 09:56 被阅读197次

    前言

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

    错误的异想天开的做法

    当时想着是是根据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里注册自己的函数,在这里你可以本机记录崩溃,看自己的需求了

    相关文章

      网友评论

      • 落影loyinglin:或许可以记录下vc的层级,有助于定位业务,
        Link913:@落影loyinglin 你说的vc的层级是?感觉不好拿啊,虽然说事件能挨个传递

      本文标题:不用第三方bug统计该如何骚操作

      本文链接:https://www.haomeiwen.com/subject/uhiuuxtx.html