美文网首页iOS开发知识小集iOSiOS开发
iOS 开发笔记 - 开发中如何实现自动检测更新APP

iOS 开发笔记 - 开发中如何实现自动检测更新APP

作者: 喜欢吃生蚝 | 来源:发表于2016-11-04 22:16 被阅读1652次

    实现思路

      http://www.cnblogs.com/jys509/p/5390505.html
    
    • 1.获取当前项目APP版本号
    • 2.拿到AppStore项目版本号
    • 3.对比版本号,实现更新功能
    #import
    "ViewController.h"
    //1一定要先配置自己项目在商店的APPID,配置完最好在真机上运行才能看到完全效果哦
    #define STOREAPPID
    @"1080182980"
    @interface ViewController ()
    @end
    @implementation ViewController
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        //一句代码实现检测更新
        [self hsUpdateApp];
    }
    
    /**
     *  天朝专用检测app更新
     */
    
    -(void)hsUpdateApp
    {
        //2先获取当前工程项目版本号
        NSDictionary *infoDic=[[NSBundle mainBundle] infoDictionary];
        NSString*currentVersion=infoDic[@"CFBundleShortVersionString"];
        //3从网络获取appStore版本号
        NSError *error;
        NSData *response = [NSURLConnection
    sendSynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString
    stringWithFormat:@"http://itunes.apple.com/cn/lookup?id=%@",STOREAPPID]]]
    returningResponse:nil error:nil];
        if (response == nil) {
            NSLog(@"你没有连接网络哦");
            return;
        }
        NSDictionary *appInfoDic = [NSJSONSerialization JSONObjectWithData:response
    options:NSJSONReadingMutableLeaves error:&error];
        if (error) {
            NSLog(@"hsUpdateAppError:%@",error);
            return;
        }
        NSArray *array = appInfoDic[@"results"];
        NSDictionary *dic =  array[0];
        NSString *appStoreVersion = dic[@"version"];
    
        //打印版本号
        NSLog(@"当前版本号:%@\n商店版本号:%@",currentVersion,appStoreVersion);
        //4当前版本号小于商店版本号,就更新
        if([currentVersion floatValue] <[appStoreVersion floatValue])
        {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"版本有更新"
    message:[NSString stringWithFormat:@"检测到新版本(%@),是否更新?",appStoreVersion] delegate:self cancelButtonTitle:@"取消"otherButtonTitles:@"更新",nil];
            [alert show];
        }else{
            NSLog(@"版本号好像比商店大噢!检测到不需要更新");
        }
    }
    

    相关文章

      网友评论

      • 随行的羊:希望关注 “iOS开发知识小集” 的专题哈,谢谢:smile:
      • 夜冰雨:你好,我将您的方法添加到项目中。将项目运行到真机上,项目会发生闪退的情况
        王文_bb48:@breakdawn 用[num1 compare:num2 options:NSNumericSearch] ==NSOrderedDescending这个方法比较
        breakdawn:判断的时候直接floatValue的话,如果是小版本,1.0和1.0.1 你这样判断就有问题的
        喜欢吃生蚝:@夜冰雨 真实项目测试 没问题 你可以打全局断点调试一下,看看哪里出了问题

      本文标题:iOS 开发笔记 - 开发中如何实现自动检测更新APP

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