【iOS】自动检测更新APP

2016-11-10  本文已影响0人  雨声不吃鱼

过程
1.获取当前项目APP版本号
2.拿到AppStore项目版本号
3.对比版本号,实现更新功能

#import"ViewController.h"
//1一定要先配置自己项目在商店的APPID,配置完最好在真机上运行才能看到完全效果哦
#define STOREAPPID @"xxxxx"

@implementation ViewController
-(void)viewDidLoad
{
    [super viewDidLoad];
    
    [self hsUpdateApp];
}

-(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(@"版本号好像比商店大噢!检测到不需要更新");
    }
}
@end

微信公共号:iapp666666
GitHub:点此前往

上一篇下一篇

猜你喜欢

热点阅读