iOS的xcode的version,build以及App Store的version

我从简书搬家了

本文原地址:原地址

前人挖坑后人填。。。。 阐述一下背景:

App更新迭代,需要跟后台做一个版本控制更新的开关。正常来说应该是将xcode的version与App Store的version对应,并通过该值判断开关是否打开。

但是问题来了。。上一位iOS工程师一直是使用的build进行版本控制,本地xocde的version比App Store的version高出不少。

先说一说Version。分为xcode的version和App Store的version。理论上应该两者一致。方便维护。

xcode的version

可以通过

//  获得version号
  NSString *versionCode =[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
复制代码

获取,获取的是info.plist文件中的

###App Store的version 则是通过调取接口: itunes.apple.com/lookup?id=你… 调用方式:post 返回结果:

NSArray *array = responseObject[@"results"];
NSDictionary *dict = [array lastObject];
NSLog(@"当前版本为:%@", dict[@"version"]);
复制代码

代码如下:

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager POST:@"https://itunes.apple.com/lookup?id=414478124" parameters:nil success:^(AFHTTPRequestOperation * _Nonnull operation, id  _Nonnull responseObject) {
        NSArray *array = responseObject[@"results"];
        NSDictionary *dict = [array lastObject];
        NSLog(@"当前版本为:%@", dict[@"version"]);
    } failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
        NSLog @"请求失败";
    }];
}
复制代码

正常来说都是对外暴露的版本,xcode与App Store的版本理应一致。方便维护。

build:

开发内部测试版本号,写多少都行,内部开发测试用的,写多少都行,最好是不要对外暴露。因为每次打包都需要往上+,所以用于版本控制效果不好。

//获得build号:
  NSString *versionName =[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
复制代码

由于不可逆的缘故,version是没办法往下降了。我只能将错就错,尽量更新大版本,去追xcode的version,希望多几次更新能将版本回归正常。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值