【iOS开放】应用从App Store获取版本信息

在应用成功上架App Store后,长久的保持对产品的维护和版本升级就是必不可少的流程,我们知道在iOS7以后,用户可以在“设置-> iTunes Store和App Store->更新”中选择打开或关闭应用程序的自动更新,当有网络链接时,系统会不停的将每一个应用的版本信息从iTunes Store或App Store 获取,在有更新时执行更新操作。但是这样一来对用户的网络流量以及iOS设备的使用性能就会对应下降,因此有部分用户还是选择关闭自动更新。

我们所要讨论的就是当用户关闭自动更新,或是当应用有自动更新却还没来得及更新的时候,主动的要求程序向App Store发起请求,查询是否有更新:

- (void)checkAppUpdate {
    //向App Store发起请求,APP_ID为应用上架App Store所分配的ID,country参数代表App Store的区域代码,这里以中国为例
    NSString *updateUrlString = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@&country=%@",APP_ID,@"cn"];
    
    NSURL *updateUrl = [NSURL URLWithString:updateUrlString];
    NSMutableURLRequest *versionRequest = [NSMutableURLRequest requestWithURL:updateUrl];
    [versionRequest setHTTPMethod:@"GET"];
    //同步请求,直接获取NSData
    NSData *data = [NSURLConnection sendSynchronousRequest:versionRequest returningResponse:nil error:nil];
    if (data) {
        NSString *resultStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

        NSLog(@"%@",_appInfo);
    }
}
这里需要注意的是,如果你的应用不是Global的,在URL里最好带上你country参数,否则就无法正确获取到应用信息。

用三方的JSON库,或是苹果官方的NSJSONSerialization可以将字符串序列化成为NSDictionary,可以看到在result数组中还有这样几个字段

trackId:就是你的AppId

trackName: 应用名称

trackViewUrl:跳转App Store更新的URL

version: 当前应用在App Store最新的版本


通过比较版本号进行提示:

                NSString *latestVersion = [[[_appInfo objectForKey:@"results"] firstObject] objectForKey:@"version"];
                if (![APP_VERSION isEqualToString:latestVersion]) {
                    //有版本更新
                    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"有版本更新,是否去更新?" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"去更新",nil];
                    [alert show];
                } else {
                    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"当前版本已为最新!" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil,nil];
                    [alert show];
                }

APP_VERSION 为宏定义:

#define APP_VERSION [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]


跳转更新

NSString *trackViewUrl = [[[_appInfo objectForKey:@"results"] firstObject] objectForKey:@"trackViewUrl"];//地址trackViewUrl

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


ok,搞定!!!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值