需求来源:

在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版本更新比较版本号大小相关推荐

  1. iOS app版本更新和版本号的比较

    //获取手机程序的版本号 NSString *ver = [[[NSBundle mainBundle]infoDictionary] objectForKey:@"CFBundleShor ...

  2. ios app版本更新流程及问题总结

    ** ios app版本更新流程 ** 由于我是接手别人的项目进行上架,没有相关证书,描述文件或者p12文件,而且项目的发布证书也快要到期了,所以我新建发布证书ios_distribution.cer ...

  3. iOS App版本更新

    版本更新的方式: 可选更新:弹框时有取消和更新两个按钮,用户可以选择取消按钮(增加新的功能,改善用户的体验等,这种更新不会影响软件的正常的使用) 强制更新:弹框时只有一个更新按钮,用户没得选择,必须更 ...

  4. ios app 版本更新上架发布

    打包app后发现由于客户证书过期导致app在App Store无法被搜索到,在更新版本时踩了一些坑. 一.如何申请ios证书 二.如何创建描述文件配置 三.ios上架流程 开发工具:apicloud ...

  5. iOS App版本更新并上架App Store

    一.上传原数据包 打开Transporter.app 点击添加按钮,将App元数据包上传至Transporter.app 点击交付按钮,将App交付至App Store Connect 二.添加构建版 ...

  6. 2019年苹果iOS App上架详细图文教程

    上架基本需求资料 1.苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2.开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa测试上架的完整流程,中途可能会遇到一些报错,一般 ...

  7. iOS APP真机测试及上架App Store流程记录

    上架基本需求资料 1.苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2.开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa测试上架的完整流程,中途可能会遇到一些报错,一般 ...

  8. flutter 修改iOS app图标 名称

    这里主要讲2点,一是 iOS app的图标尺寸大小,二 是如何修改iOS app图标以及名称 iOS图标尺寸大小 首先我们打开xcode,并打开项目,找到app图标的位置 接下来我们可以看到图标下面有 ...

  9. 【业务篇】史上最全经验版用例之IOS和Android版APP版本更新、IOS版规避审核?

    一.IOS app设置苹果审核 为了app提交苹果能快速审核通过,故需设置app审核状态,隐藏部分敏感功能 1.线上app版本1.0.0,新版本app2.0.0测试通过,设置2.0.0版本app审核状 ...

最新文章

  1. 卷学历、卷加班……程序员拥有什么能力才能破局内卷?
  2. 王瑜琪:数据科学助力我捕捉研究生教育的宏观效应 | 提升之路系列
  3. 装了java_下载安装Java
  4. Oracle Dababase_buffer_cache数据库高速缓存组织结构剖析
  5. Linux系统软件信息内核,系统,目录,防火墙等
  6. Flash 与 Js 相互调用
  7. React 重温之 组件生命周期
  8. Java学习笔记5-2——多线程
  9. Python爬虫_HTTP标准
  10. Hibernate中createCriteria即QBC查询的详细用法 .Hibernate中createCriteria即QBC查询的详细用法 ....
  11. 解决 pathForResource 返回 nil的问题
  12. 解析搜索引擎的Robots协议
  13. python设置环境变量_Python设置环境变量
  14. 【python】【multiprocessing】【Pool、pool.Pool、pool.ThreadPool】apply 和apply_async多进程有关时间的比较分析
  15. dd wrt php,HG255D(DDWRT)挂载U盘安装emlog和Discuz!教程
  16. Linux 下屏幕旋转
  17. Hard Swish激活函数
  18. 2021寒假MISC打卡DAY1
  19. 使用Word制作文档封面
  20. windows MNN 的使用流程(Python版)

热门文章

  1. Java 北大青鸟 第一学期 第四章 选择结构(二) 上级练习+课后作业
  2. 军衔系统与服务器人数,经验越打越少?CSGO个人资料军衔(等级)介绍
  3. 可视化工具Navicat的使用/pymysql模块的使用
  4. PyTorch学习笔记——图像处理(transforms.Normalize 归一化)
  5. TIA博途WinCC PRO V16 画面分辨率的设置方法
  6. 《Improving Deep Neural Networks》的理论知识点
  7. [校内模拟] 200731 NOIP Practice 咕T6
  8. 微软的杀毒软件在 MacOS 上推出
  9. C语言 数组插入 – 插入法排序(顺序版)
  10. 计算机中政治面貌代码,2012年3月计算机等考二级Access考前模拟题(4)