iOS开发部落iOSiOS工具&效率&优化

AvoidCrash -- 远离常见的崩溃

2016-11-29  本文已影响3166人  chenfanfang

源码地址: AvoidCrash

https://github.com/chenfanfang/AvoidCrash

前言

一个已经发布到AppStore上的App,最忌讳的就是崩溃问题。为什么在开发阶段或者测试阶段都不会崩溃,而发布到AppStore上就崩溃了呢?究其根源,最主要的原因就是数据的错乱。特别是 服务器返回数据的错乱,将严重影响到我们的App。


Foundation框架存在许多潜在崩溃的危险


AvoidCrash简介


下面先来看下防止崩溃的效果吧

可导致崩溃的代码

    NSString *nilStr = nil;
    NSArray *array = @[@"chenfanfang", nilStr];
崩溃截图.png 防止崩溃的输出日志.png

Installation【安装】

From CocoaPods【使用CocoaPods】

pod  AvoidCrash

Manually【手动导入】

配置mutableArray.png

使用方法

//这句代码会让AvoidCrash生效,若没有如下代码,则AvoidCrash就不起作用
[AvoidCrash becomeEffective];

   /*
    *  [AvoidCrash becomeEffective],是全局生效。若你只需要部分生效,你可以单个进行处理,比如:
    *  [NSArray avoidCrashExchangeMethod];
    *  [NSMutableArray avoidCrashExchangeMethod];
    *  .................
    *  .................
    */
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    [AvoidCrash becomeEffective];
    
    //监听通知:AvoidCrashNotification, 获取AvoidCrash捕获的崩溃日志的详细信息
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dealwithCrashMessage:) name:AvoidCrashNotification object:nil];
    return YES;
}

- (void)dealwithCrashMessage:(NSNotification *)note {
    //注意:所有的信息都在userInfo中
    //你可以在这里收集相应的崩溃信息进行相应的处理(比如传到自己服务器)
    NSLog(@"%@",note.userInfo);
}
userInfo信息结构.png userInfo详细信息.png

目前可以防止崩溃的方法有










更新

2016-10-15

2016-11-29

2016-12-1

期待

About me -- 简书

上一篇下一篇

猜你喜欢

热点阅读