iOS版本更新判断

iOS应用版本检查
本文介绍如何在iOS应用中检查并判断是否为新版本,通过对比沙盒中存储的上次使用软件版本号与当前版本号来实现。区分了CFBundleShortVersionString与CFBundleVersion的不同用途。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值