版本更新相关,CFBundleVersion和CFBundleShortVersionString的比较,获取版本号

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shaohua_lv/article/details/72281850

移动客户端进行版本迭代时,需要进行本地版本号和服务器版本号比较,从而实现更新提示。本文祥讲怎样获取版本号,具体的比较方法。


一、CFBundleShortVersionString和CFBundleVersion


     CFBundleShortVersionString:对应Version项

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


    CFBundleVersion:对应Build项

    标识(发布或未发布)的内部版本号。这是一个单调增加的字符串,包括一个或多个时期分隔的整数。

简而言之: CFBundleShortVersionString是比较正式的版本号,只有版本发布时才修改,而每次迭代中间需要build出很多版本,CFBundleVersion就是区分迭代中间版本的,在判断版本是否需要更新时,一定要用CFBundleShortVersionString。

二、具体的做版本比较

版本号一般用1.1.1这样的数字和'.'组合构成,我们如何进行比较呢?

1.我们可以将NSString中的.去掉,然后对纯数字字符串比较

   NSString *version = [myVersionstringByReplacingOccurrencesOfString:@"."withString:@""];


2.直接进行对比

   //当前版本号

   NSString *myVersion = [[NSBundlemainBundle]objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

   //获取到服务器最新版本号,此处用1.1.0测试

   NSString *lastVersion =@"1.1.0";

    

   if ([myVersioncompare:lastVersionoptions:NSNumericSearch] ==NSOrderedDescending) {

       //当前版本低于最新版本

       NSLog(@" the version is low");

    }

   else

   {

       NSLog(@" the version is last");

   }


三:跳转到APPStore更新


        点击立即更新跳转到APPStore:

 NSString *urlStr =@"http://itunes.apple.com/cn/app/id1197959303"

         [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]];













猜你喜欢

转载自blog.csdn.net/shaohua_lv/article/details/72281850