iOS APP版本更新比较版本号大小
需求来源:
在APP迭代更新过程中,有这样的需求,需要比较版本号的大小,然后弹出提示框提示更新.
之前版本号一直是中规中矩的按照1.1.0 --> 1.1.2这种数字变化方式.采用的方法是:将版本号字符串中的.号删除掉之后,比较两个数字的大小,后来发现在App Store中,各种APP的版本号数字变化的格式千奇百怪,1.0.11-->1.1.0,如果还采用上面的方法比较版本号,就不对了1011(本地version)肯定是大于110(线上版本),而实际上1.1.0是1.0.11的下一个版本.
解决方法:
版本号是分成三个模块来命名的,所以比较大小还是将三个部分剖开来比较大小兼容性强一些,万一遇到版本号命名没有按照规定的格式来,到时候大小就判断错了.
思路是这样的:三个部分,从第一个部分开始比较大小,优先级:第一部分>第二部分>第三部分,一旦分出大小就代表比较结束了,只要前面一部分大,无论后面一部分怎么小都没关系.
NSString *localVerson=[GlobalFuction appVerson];//获取本地版本号
//将版本号按照.切割后存入数组中
NSArray *localArray = [localVerson componentsSeparatedByString:@"."];
NSArray *appArray = [versonAPP componentsSeparatedByString:@"."];
NSInteger minArrayLength = MIN(localArray.count, appArray.count);
BOOL needUpdate = NO;
for(int i=0;i<minArrayLength;i++){//以最短的数组长度为遍历次数,防止数组越界
//取出每个部分的字符串值,比较数值大小
NSString *localElement = localArray[i];
NSString *appElement = appArray[i];
NSInteger localValue = localElement.integerValue;
NSInteger appValue = appElement.integerValue;
if(localValue<appValue) {
//从前往后比较数字大小,一旦分出大小,跳出循环
needUpdate = YES;
break;
}else{
needUpdate = NO;
}
}
if (needUpdate) {
//弹出提示更新弹框
}
iOS APP版本更新比较版本号大小相关推荐
- iOS app版本更新和版本号的比较
//获取手机程序的版本号 NSString *ver = [[[NSBundle mainBundle]infoDictionary] objectForKey:@"CFBundleShor ...
- ios app版本更新流程及问题总结
** ios app版本更新流程 ** 由于我是接手别人的项目进行上架,没有相关证书,描述文件或者p12文件,而且项目的发布证书也快要到期了,所以我新建发布证书ios_distribution.cer ...
- iOS App版本更新
版本更新的方式: 可选更新:弹框时有取消和更新两个按钮,用户可以选择取消按钮(增加新的功能,改善用户的体验等,这种更新不会影响软件的正常的使用) 强制更新:弹框时只有一个更新按钮,用户没得选择,必须更 ...
- ios app 版本更新上架发布
打包app后发现由于客户证书过期导致app在App Store无法被搜索到,在更新版本时踩了一些坑. 一.如何申请ios证书 二.如何创建描述文件配置 三.ios上架流程 开发工具:apicloud ...
- iOS App版本更新并上架App Store
一.上传原数据包 打开Transporter.app 点击添加按钮,将App元数据包上传至Transporter.app 点击交付按钮,将App交付至App Store Connect 二.添加构建版 ...
- 2019年苹果iOS App上架详细图文教程
上架基本需求资料 1.苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2.开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa测试上架的完整流程,中途可能会遇到一些报错,一般 ...
- iOS APP真机测试及上架App Store流程记录
上架基本需求资料 1.苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2.开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa测试上架的完整流程,中途可能会遇到一些报错,一般 ...
- flutter 修改iOS app图标 名称
这里主要讲2点,一是 iOS app的图标尺寸大小,二 是如何修改iOS app图标以及名称 iOS图标尺寸大小 首先我们打开xcode,并打开项目,找到app图标的位置 接下来我们可以看到图标下面有 ...
- 【业务篇】史上最全经验版用例之IOS和Android版APP版本更新、IOS版规避审核?
一.IOS app设置苹果审核 为了app提交苹果能快速审核通过,故需设置app审核状态,隐藏部分敏感功能 1.线上app版本1.0.0,新版本app2.0.0测试通过,设置2.0.0版本app审核状 ...
最新文章
- 卷学历、卷加班……程序员拥有什么能力才能破局内卷?
- 王瑜琪:数据科学助力我捕捉研究生教育的宏观效应 | 提升之路系列
- 装了java_下载安装Java
- Oracle Dababase_buffer_cache数据库高速缓存组织结构剖析
- Linux系统软件信息内核,系统,目录,防火墙等
- Flash 与 Js 相互调用
- React 重温之 组件生命周期
- Java学习笔记5-2——多线程
- Python爬虫_HTTP标准
- Hibernate中createCriteria即QBC查询的详细用法 .Hibernate中createCriteria即QBC查询的详细用法 ....
- 解决 pathForResource 返回 nil的问题
- 解析搜索引擎的Robots协议
- python设置环境变量_Python设置环境变量
- 【python】【multiprocessing】【Pool、pool.Pool、pool.ThreadPool】apply 和apply_async多进程有关时间的比较分析
- dd wrt php,HG255D(DDWRT)挂载U盘安装emlog和Discuz!教程
- Linux 下屏幕旋转
- Hard Swish激活函数
- 2021寒假MISC打卡DAY1
- 使用Word制作文档封面
- windows MNN 的使用流程(Python版)
热门文章
- Java 北大青鸟 第一学期 第四章 选择结构(二) 上级练习+课后作业
- 军衔系统与服务器人数,经验越打越少?CSGO个人资料军衔(等级)介绍
- 可视化工具Navicat的使用/pymysql模块的使用
- PyTorch学习笔记——图像处理(transforms.Normalize 归一化)
- TIA博途WinCC PRO V16 画面分辨率的设置方法
- 《Improving Deep Neural Networks》的理论知识点
- [校内模拟] 200731 NOIP Practice 咕T6
- 微软的杀毒软件在 MacOS 上推出
- C语言 数组插入 – 插入法排序(顺序版)
- 计算机中政治面貌代码,2012年3月计算机等考二级Access考前模拟题(4)