版本迭代更新

简介: 版本迭代更新

#defineKEY @"CFBundleShortVersionString"- (void)judgeCurrentAppStoreVersion

{//1.通过session请求NSString *str =@"http://itunes.apple.com/lookup?id=414478124";

NSURL*urlStr =[NSURL URLWithString:str];

NSURLRequest*request =[NSURLRequest requestWithURL:urlStr];//2.初始化sessionNSURLSession *session =[NSURLSession sharedSession];

NSURLSessionTask*sessionTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError *_Nullable error) {

NSDictionary*appInfo = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];

NSArray*infoContent = [appInfo objectForKey:@"result"];//2.1商店版本号NSString *storeVersion = [[infoContent objectAtIndex:0] objectForKey:KEY];

NSLog(@"商店的版本号是%@", storeVersion);//2.2当前客户端的版本号NSString *currentVersion =[NSBundle mainBundle].infoDictionary[KEY];

NSLog(@"当前版本是%@", currentVersion);//2.3比较当前版本号和商店版本号if(![currentVersion isEqualToString:storeVersion]) {//新版本//2.4弹窗提示更新UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"有最新版本了,请及时更新"message:nil preferredStyle:UIAlertControllerStyleActionSheet];

UIAlertAction*OKAction = [UIAlertAction actionWithTitle:@"确定"style:UIAlertActionStyleDefault handler:^(UIAlertAction *_Nonnull action) {

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

}];

UIAlertAction*cancelAction = [UIAlertAction actionWithTitle:@"取消"style:UIAlertActionStyleDefault handler:nil];

[alertController addAction:OKAction];

[alertController addAction:cancelAction];

dispatch_async(dispatch_get_main_queue(),{

[self.window.rootViewController presentViewController:alertController animated:YES completion:nil];

});//2.5存储新版本号NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];

[defaults setObject:KEY forKey:currentVersion];

[defaults synchronize];

}elseif([currentVersion isEqualToString:storeVersion]){//旧版本}

}];//3.开启任务[sessionTask resume];

}


ttp://itunes.apple.com/lookup?id=414478124 id为APP在AppStore中的一个序号。可以打开appstore 点击一个app 复制链接即可看到。id 是在你提交信息后,先不要提交审核,

就可以看到id。(PS:我是这样做的,有更好的可以指正)然后拿到这个id后可以去代码里面写了。

解释:

1.CFBundleShortVersionString表示应用程序的发布版本号,

该版本号一般由三个整数构成,第一个整数表示有重大的修改版本,例如增加新的功能或重大变化。第二个版本表示修订版本,实现较为突出的特点。第三个版本表示维护的版本。

该值不同于 "CFBundleVersion" 标识

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

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

这两个的区别:

1. CFBundleShortVersionString对应Xcode里项目的Version

2. CFBundleVersion对应Xcode里项目的Build

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


相关文章
|
3月前
|
JavaScript 前端开发 索引
ES6新特性(三): 可迭代对象和两种新增循环方式
ES6新特性(三): 可迭代对象和两种新增循环方式
|
6月前
|
存储 算法 JavaScript
xijs更新指南(v1.2.1)
xijs更新指南(v1.2.1)
67 2
|
6月前
|
算法 Java 程序员
技术更新迭代与“八股文”知识库的清理与更新
随着互联网技术的不断更新迭代,曾经被认为是“标准答案”的观点和方法已经逐渐失去适应当前需求的能力,甚至被视为过时的做法。就拿最近的技术圈新闻来讲,在新的JDK版本中,Java编程引入了许多新的特性、工具和方法,使其变得更加简洁、高效和强大,但是之前的旧特性和方法也有许多被废弃了,比如曾经比较经典的偏向锁已经被废弃了,因此,个人觉得是时候对“八股文”进行一次知识库的清理和更新了。那么本文就来分享一下关于偏向锁被废弃以及个人对此的看法,并回顾一下自己的“八股文”知识库,以及技术更新迭代地时候我们要保持及时更新自己的知识储备。
114 2
技术更新迭代与“八股文”知识库的清理与更新
|
前端开发 开发者
【raETable】🎉🎉🎉大更新!大更新!绝对大更新!
【raETable】🎉🎉🎉大更新!大更新!绝对大更新!
|
Swift
LTScrollView更新啦~
LTScrollView更新啦~
86 0
|
SQL
使用tkmapper更新某一列
使用tkmapper更新某一列
162 0
|
计算机视觉
2023CorelDRAW什么时候更新?有哪些新功能
CorelDRAW是矢量软件中的最老牌大哥,功能强大没说的,此外它还集成了Corel PHOTO-PAINT、Corel Font Manager等在内的7个软件包。而且对比于illustrator和freehand,CorelDRAW更为简单易上手!
297 0
|
Web App开发 缓存 iOS开发
CleanMyMacX4.12.2有哪些新的功能更新
任何一部电子设备在使用多年之后都会出现性能下降的问题,苹果的Mac计算机自然也不例外。当你发现Mac运行缓慢,因为有太多文件或缓存垃圾将Mac的运行速度拖了下来。 要想提高生活和工作效率,必须对Mac进行优化,提升一下Mac 的使用性能。那么以下三种提升Mac使用性能的方法对你的帮助将会是巨大的。
123 0
更新wincvs代码
更新wincvs代码
67 0
更新wincvs代码