zoukankan      html  css  js  c++  java
  • iOS 崩溃分析

    崩溃统计分析,在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

  • 相关阅读:
    DUILib的代码分析
    source$表坏块
    树莓派风扇自动控制随想
    给qq机器人加上bing搜索
    龙芯fedora28日常生存指南
    攻防世界 when_did_you_born
    部署PWN题Docker环境
    NPUCTF2020 EzRSA
    金融密码杯 The Art of War
    Machine Learning & Deep Learning Fundamentals
  • 原文地址:https://www.cnblogs.com/jys509/p/5513857.html
Copyright © 2011-2022 走看看