开发中我们可能会遇到这样的需求,当AppStore中有新版本迭代更新,在用户点开APP的时候弹框提醒客户去AppStore更新APP。这里面就有个关键点,判断当前APP与AppStore中的版本高低,若一样,则无需进行提示;反之则弹框提示(用户使用版本不会比AppStore版本高~)。

下面就说一下如何获取APP在AppStore中的版本,直接上代码。

#define KEY @"CFBundleShortVersionString"
- (void)judgeCurrentAppStoreVersion
{// 1.通过session请求NSString *str = @"http://itunes.apple.com/lookup?id=414478124";NSURL *urlStr = [NSURL URLWithString:str];NSURLRequest *request = [NSURLRequest requestWithURL:urlStr];// 2.初始化sessionNSURLSession *session = [NSURLSession sharedSession];NSURLSessionTask *sessionTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {NSDictionary *appInfo = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];NSArray *infoContent = [appInfo objectForKey:@"result"];// 2.1商店版本号NSString *storeVersion = [[infoContent objectAtIndex:0] objectForKey:KEY];NSLog(@"商店的版本号是%@", storeVersion);// 2.2当前客户端的版本号NSString *currentVersion = [NSBundle mainBundle].infoDictionary[KEY];NSLog(@"当前版本是%@", currentVersion);// 2.3比较当前版本号和商店版本号if (![currentVersion isEqualToString:storeVersion]) { // 新版本// 2.4弹窗提示更新UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"有最新版本了,请及时更新" message:nil preferredStyle:UIAlertControllerStyleActionSheet];UIAlertAction *OKAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {[[UIApplication sharedApplication] openURL:[NSURL URLWithString:APP_STRING]];}];UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:nil];[alertController addAction:OKAction];[alertController addAction:cancelAction];dispatch_async(dispatch_get_main_queue(),{[self.window.rootViewController presentViewController:alertController animated:YES completion:nil];});// 2.5存储新版本号NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];[defaults setObject:KEY forKey:currentVersion];[defaults synchronize];}else if ([currentVersion isEqualToString:storeVersion]){ // 旧版本
            }}];// 3.开启任务
    [sessionTask resume];
}

http://itunes.apple.com/lookup?id=414478124 id为APP在AppStore中的一个序号。可以打开appstore 点击一个app 复制链接即可看到。id 是在你提交信息后,先不要提交审核,就可以看到id。(PS:我是这样做的,有更好的可以指正)然后拿到这个id后可以去代码里面写了。

解释:1.CFBundleShortVersionString 表示应用程序的发布版本号,该版本号一般由三个整数构成,第一个整数表示有重大的修改版本,例如增加新的功能或重大变化。第二个版本表示修订版本,实现较为突出的特点。第三个版本表示维护的版本。该值不同于 "CFBundleVersion" 标识
2.CFBundleVersion 标识应用的内部版本号

  这个版本是内部自己团队使用的一个版本号,一般不对外公开。

这两个的区别:

   1. CFBundleShortVersionString 对应Xcode里项目的 Version

  2. CFBundleVersion 对应Xcode里项目的 Build

每发布一个新应用或新版本,苹果都要求你输入一个版本号,这个版本号对应的是 CFBundleShortVersionString ,不要写错哦。并且,如果你上传成功后(未审核,或未通过),然后又修复了bug,或改了功能,那么在打包发布时,CFBundleVersion 必须比上一版本更大。

打个比方,我第一次上传的Version:1.5.1、Build:3.4.2 ,那我这个应用被拒绝,修复好后,我又打包上传时,Version还是1.5.1,但Build必须大于3.4.2,可以是3.4.3 、3.4.5、3.8.5等。 如果Version 1.5.1通过审核后,又发新版本,那个下次上传时,Version要大于1.5.1,但Build可以从新开始,比如1.1.0 。如果Version1.5.1又有问题,我又要上传修改后的应用时,Build必须大于上一个上传成功的Build,即要大于1.1.0。

参考文章:

1.《ios版本更新判断》;

2.《ios开发之获取APP在AppStore中的版本号》

转载于:https://www.cnblogs.com/peaker-wu/p/5395248.html

iOS 版本更新迭代相关推荐

  1. android版本迭代,多盟:android2.3仍是主流 iOS新版本迭代加

    暨多盟成立两周年之际,多盟推出2012年移动数据报告,致力于帮助移动应用开发者和进行移动营销的广告主全面深入了解移动广告发展现状和趋势.根据数据报告显示,android2.3仍是主流,4.1增长迅速; ...

  2. iOS 版本更新的两种方法

    根据AppStore上的数据进行判断是否更新 苹果给了我们一个接口,可以根据应用的id请求应用的一些信息,取出其中的版本与当前运行的应用的版本号比较. //同步请求获取应用的信息字典 NSMutabl ...

  3. iOS 版本更新提示、新特性启动页面思路 —— HERO博客

    简单整理iOS开发中,面对版本更新提示.新特性启动页面时的思考思路. 首先认清两者区别,版本更新的提示可能只要版本变动就会提示,需要重复提醒.而新特性页面可能只出现在比较大的版本更新中,通常只显示一次 ...

  4. iOS版本更新与集成百度地图

    App在AppStore上会对应一个地址, 通过这个地址可以获得这个App的版本号, 与当前App的版本号做对比, 如果小于当前的版本号, 进行版本更新. 不论我们需要集成什么的SDK, 都先要获取一 ...

  5. iOS版本更新到10.3无法下载企业应用

    iOS系统版本升级到10.3以后,企业应用无法下载,使用Safari连接部署应用的服务器报错:"无法连接到....". 经过研究已经找到解决办法. 打开通用-关于本机-证书信任设置 ...

  6. iOS 版本更新摘要(一)iOS 7.0

    从这一篇开始,我会把iOS 7.0 到最新版本的更新摘要都整理出来,时间跨度可能会很久.这是每一个 iOS SDK(Release Version)发布时,同步发布的 "What's New ...

  7. Android版本更新迭代

    Splach(渐)Activity|WelcomeActivity 作用:1.展示公司LOGO,提高公司知名度       2.版本迭代更新       3.判断是否是第一次进入这个程序(是第一次的有 ...

  8. iOS ——版本更新检测 判断应用版本和升级提示

    ios中应用的版本判断有两种方法: 1.将你的应用版本号同步在你自己的服务器上,打开程序后去自己的服务器获取版本号和手机上的应用版本号做比较,然后去appstore升级 2.通过url获取appsto ...

  9. iOS -- 版本更新检查

    NetworkTool.checkUpdate { releaseNotes,isNeedUpdate inprint(releaseNotes,isNeedUpdate)if isNeedUpdat ...

  10. iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码

    iOS精选源码 控制台开发调试神器GHConsole iOS 高度封装自适应表单(编辑及附件) 基于AVPlayer的视频播放器 仿alibaba分类 Swift 4 - 模仿今日头条 SGBrows ...

最新文章

  1. JS如何调用CSS样式表
  2. PostgreSQL教程(二):SQL语言
  3. UA OPTI544 量子光学14 量子电动力学基础
  4. phpcms /api/phpsso.php SQL Injection Vul
  5. 第148天:js+rem动态计算font-size的大小,适配各种手机设备
  6. 【lua学习】2.数据类型
  7. orcle mysql 查询_Oracle与Mysql的高级查询与难点sql
  8. 【报告分享】百度大脑AI技术成果白皮书2018-2019.pdf
  9. 毫秒间完成行为分析,飞猪端智能技术实践!
  10. ZC_汇编指令_cmp
  11. 【汇编语言】多模块程序结构
  12. Emmagee--APP性能测试工具的基本使用
  13. 供应链管理的三个层次
  14. 1万小时后,我从外包走进了字节跳动,现在出了一本书,文末送书!
  15. java 日期比较_java日期大小比较
  16. Edge、Chrome 1月12日之后继续使用Flash的方法(超级专业,高能预警)
  17. 北京市工作居住证的申请与办理
  18. 远程桌面优化避坑指南
  19. 样本不平衡的常用处理方法
  20. 6-3 BMI计算(类与对象) (10分)

热门文章

  1. 探索SQL Server元数据(一)
  2. 学习一种新编程语言要做的14个练习
  3. 开发移动网页应用的一些技术指导
  4. 电脑对眼睛的伤害,护眼的七大误区
  5. 13_展示商品的详情
  6. 分享Android开发的一些工具
  7. js基础-24-伪数组转化为真数组
  8. java模拟网银登录_Java模拟网上银行业务
  9. c语言程序设计的例题,C语言程序设计例题与习题--详细介绍
  10. mysql忽略大小写 chmod_Ubuntu18.04下Mysql8.0.15关闭大小写敏感