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
iOS版本更新判断_第1张图片
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,如若转载,请注明来源。

你可能感兴趣的:(iOS版本更新判断)