版本更新

仅供参考:如有问题请留言。如有更好的写法--请告诉我

 版本更新中需要开发人员自己维护, 将配置文件写好, 给后台放在服务器中做好软件升级工作,软件更新是重中之重, 需要认真做好!不然会出大问题!

在这里介绍一下两个key值 一定不要混淆了!


CFBundleShortVersionString  //对应的发布的版本号 对应上图的—————Version

CFBundleVersion  // 对应的应用程序的内部版本号对应上图的—————Build(为什么有应用内部版本号呢—————因为上架的应用程序可能出现应用被拒的情况。比如我上架的1.0版本被拒绝了(应用内的版本号为1),需要重新打包在上传AppStore,这时候我们上传的版本一定还是1.0的,但是1.0的版本中有一个是已经被拒绝的,为了区分拒绝的和新上传的这时候我们将build 改的比之前的大就好—————1.1(反正比之前的大就好))

这里是对配置文件的介绍:

//versionArray 这里是保存的版本号数组

//versionDicArr 是一个字典, key————— 值为对应的版本号,Value 是一个数组—————对应的版本中需要提示升级的描述,其中在versionDicArr 中每一个版本的数组中最后一位有一个标识符位改标志服非空(YES)或者(NO)—————YES 表示强制更新, NO —— 表示不强制跟新

//updateAll  0 部分跟新 1 所有的强制更新2所有不更新 appstore的时候选择2,3 所有版本都不需要强制跟新

//如果选择0的话, 返回的数据中最后一位是YES, (改版本)表示强制跟新, 返回的是NO的话 (改版本)表示不强制跟新

//选择1的话, 所有版本都要强制更新

// 选择2的话所有都不显示更新的的提示框

// 选择3的话所有版本都不需要强制更新,显示的带有可以取消的箭头的问题

这里是版本更新的逻辑判断和显示可以放在appDelegate里面具体视情况而定。

获取版本应用的版本号

- (NSString *)getVersion {

return [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];

}

/** 版本更新**/

- (void)showVersion {

NSDictionary  * dic = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@""]];// 这里是网络请求

SystemUpModel *systemUpModel = [SystemUpModel new];

[systemUpModel setValuesForKeysWithDictionary:dic];

if ([systemUpModel.updateAll isEqualToString:@"1"]) {// 所有强制更新

self.upSystem.dataArray = systemUpModel.versionDicArr[[self getVersion]];

self.upSystem.deleteBtn.hidden = YES; // 隐藏

[self VersionButton];

} else if ([systemUpModel.updateAll isEqualToString:@"0"]) { // 部分跟新 我们现在总共有5个版本

if ([systemUpModel.versionArray containsObject:[self getVersion]]) {

self.upSystem.dataArray = systemUpModel.versionDicArr[[self getVersion]];

if ([self.upSystem.dataArray.lastObject isEqualToString:@"YES"]) { // 部分强制跟新

self.upSystem.deleteBtn.hidden = YES; //隐藏

} else if ([self.upSystem.dataArray.lastObject isEqualToString:@"NO"]) {// 部分不需要强制更新

self.upSystem.deleteBtn.hidden = NO; // 显示

}

[self VersionButton];

}

} else if ([systemUpModel.updateAll isEqualToString:@"2"]) {// 所有不跟新

} else if ([systemUpModel.updateAll isEqualToString:@"3"]) {// 版本不强制跟新显示❌号

if ([systemUpModel.versionArray containsObject:[self getVersion]]) {

self.upSystem.deleteBtn.hidden = NO;

self.upSystem.dataArray = systemUpModel.versionDicArr[[self getVersion]];

[self VersionButton];

}

}

}

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