不要急,不要怕

iOS提示版本更新

一:在某个服务器上存储最新发布的版本信息,需要的时候向该服务器查询;
二:在需要的时候向 appstore 查询

方法一就不多说了,个人感觉还是法二好一些,更新及时,自己就搞定了,不用和后台交流。

请求:

get请求 这个地址http://itunes.apple.com/lookup?id=你的appid
之后我们会得到一个的json数据,里面包含着我们好多的app各种信息,这里我删了好多.
{
resultCount = 1;
results = (
{
advisories = (
);

        features =             (
        );
        fileSizeBytes = 14362624;
        formattedPrice = Free;
        genreIds =             (
            6009,
            6002
        );
        genres =             (
            News,
            Utilities
        );

        trackName = "\U9ed4\U897f\U5357\U624b\U673a\U53f0";
        trackViewUrl = "https://itunes.apple.com/us/app/qian-xi-nan-shou-ji-tai/id786874960?mt=8&uo=4";
        version = "1.5.4";
        wrapperType = software;
    }
);

}

用如下的方法的到app的版本信息,先得到results数组:

NSArray *infoArray = [responseObject objectForKey:@"results"];

取第一个字典:

NSDictionary *releaseInfo = [infoArray objectAtIndex:0];

得到当前版本号以及app的下载地址:

NSString *latestVersion = [releaseInfo objectForKey:@"version"];
NSString *trackViewUrl = [releaseInfo objectForKey:@"trackViewUrl"];

但是注意这个方法不要每次去执行,没有必要,最好是一天的某个时间执行一次,

得到版本号,

NSString* localVersion =  [[NSBundle mainBundle] infoDictionary][@"CFBundleVersion"];

比较app版本号:

if ([latestVersion compare:localVersion options:NSNumericSearch] == NSOrderedDescending) {
    NSLog(@"%@ is bigger",latestVersion);
  //弹出提示框,是否下载
}else
{
    NSLog(@"%@ is bigger",localVersion);
}

跳转下载:

如果大于则弹出提示框,提示用户是否前往下载,前往下载的话,用openURL直接跳转到了appStore上(同样,给好评等也是通过这个方法)

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:trackViewUrl]];