iOS版本更新判断

应用每开发一个新版本时,都可能会有新特性介绍页面。所以在应用里就要判断是不是新版本,并且能判断只有第一次进入应用时,才是新版本。

//*  在delegate里判断*/

    //1、 取出沙盒中存储的上次使用软件的版本号
    NSString *key = @"CFBundleShortVersionString";
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *lastVersion = [defaults stringForKey:key];
    
    // 2、获得当前软件的版本号
    NSString *currentVersion = [NSBundle mainBundle].infoDictionary[key];

    // 3、判断版本号
    if ([currentVersion isEqualToString:lastVersion])
    {// 旧版本
        
    }else{ // 新版本
      
        // 存储新版本
        [defaults setObject:currentVersion forKey:key];
    }

解释

1、CFBundleShortVersionString 标识应用程序的发布版本号

  • 该标志表示就是应用的版本号,一般是由三个整数分隔组成的字符串。第一个整数代表重大修改的版本,如实现新的功能或重大变化的修订。第二个整数表示的修订,实现较突出的特点。第三个整数代表维护版本。** 该键的值不同于“CFBundleVersion”标识**

2、CFBundleVersion 标识应用的内部版本号

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

3、区别

  • CFBundleShortVersionString对应Xcode里项目的Version
  • CFBundleVersion 对应Xcode里项目的Build
Version:1.3.1、Build:1.6

4、AppStore 发布

每发布一个新应用或新版本,苹果都要求你输入一个版本号,这个版本号对应的是 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。

5、如果还有什么不明白,可能给我留言哦

~nice

  • 如果有什么疑问,可以在评论区一起讨论;
  • 如果有什么不正确的地方,欢迎指导!


注:本文首发于 iHTCboy's blog,如若转载,请注明来源。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • #defineKEY @"CFBundleShortVersionString"- (void)judgeCurr...
    指尖猿阅读 751评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • 原文链接1原文链接2 iOS程序自动提示更新的实现方案大致分为两种: 第一种,自己服务器提供一个接口,告知相关ap...
    phpios阅读 929评论 0 0
  • 接下来讲的故事,或许有人正在经历着。 事情是这样的:下班一进门发现院里犄角旮旯的杂物不见了,地板也拖得...
    星晴的晴阅读 242评论 0 0
  • 晨读感悟 今天的晨读让我陷入沉思,迷茫、焦虑…… 1.独处与注意力 我喜欢一个人呆着,确不会独处。太久没有学习,独...
    梅梅_c7d4阅读 203评论 0 1