iOS版本更新判断

作者: iHTCboy | 来源:发表于2015-04-23 20:03 被阅读4200次

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

    //*  在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,如若转载,请注明来源。

    相关文章

      网友评论

      • macfai:楼主,你好,想问下那个版本号能不能写成两位的,比如都写成 1.0
        iHTCboy:@macfai 可以的
      • superAn:现在版本更新是自己写代码,还是appStore自动更新呐 :flushed:
      • iHTCboy:@我叫大大虾米 不会啊,苹果说不能,但苹果检测应用时,版本比AppStore上架版本还高,所以应用不会提醒啊😝
        9e72b5a52cd1:@iHTCboy 请问一下那第一次上线时候app store上还没有,这种属于什么情况呢
        iHTCboy:@Loser_me 检测时,AppStore还没上线的,线上的比检测的版本低的
        9e72b5a52cd1:@iHTCboy 请问一下为什么苹果检测应用时,版本比AppStore上架版本还高? :disappointed_relieved:
      • 我叫大大虾米:@HTC 不能出现类似于“检测新版本“这样的按钮了啊,都不能出现了,还检测什么。
      • iHTCboy:@我叫大大虾米 不需要?还是说苹果不给?
      • 我叫大大虾米:现在不是不需要检测功能了嘛

      本文标题:iOS版本更新判断

      本文链接:https://www.haomeiwen.com/subject/rdtpfttx.html