在项目实际开发工程中,开发阶段需要不断的做内部更新,修复测试出现的问题

//项目成功上架后类似开发阶段uat环境下的版本迭代问题

//内部版本更新使用的方法

-(void)requestversion

{

//内部版本  build

NSString * currentVersion = [[[NSBundle mainBundle]infoDictionary]objectForKey:@"CFBundleVersion"];

//外部版本  跟用户展现的版本

NSString *softVersion=[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

NSDictionary  *body=@{

@"clientVersion":currentVersion,

@"clientPlat":@"0"};

//调用版本检测网络接口进行检测版本更新

[HttpRequest requestWithPath:[ServiceAPI withLast:versionCheck] WithJson:body block:^(id responseObject, NSError *error) {

if (!error) {

NSDictionary *JSON = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];

if ([JSON isKindOfClass:[NSNull class]] || !JSON){

return ;

}

NSString *yesOrNo= [JSON objectForKey:@"forced"];//是否强制更新

NSString *serversion = [JSON objectForKey:@"serverVersion"];//当前服务器的版本

NSString *url = [JSON objectForKey:@"url"];   //下载最新版本的连接

NSString *version = [NSString stringWithFormat:@"请升级到最新版本%@",softVersion];

if(serversion.length > 0 && [serversion integerValue]>[currentVersion integerValue] && [yesOrNo isEqualToString:@"1"])

{

//强制升级  根据项目需求自己定义

在这里可以弹出alert,或者自己定义封装自己的弹框控件

在代理方法中执行升级版本

}];

}else if (serversion.length > 0 && [serversion integerValue]>[currentVersion integerValue] && [force isEqualToString:@"0"]){

//可以暂不升级

}

else if (serversion.length > 0 && [serversion integerValue]==[currentVersion integerValue]){

//在这里可以用MBProgress弹出一个弹框

当前已是最新版本

}

}

}];

}

//UIAlertViewDelegate的方法这里就不写了

根据下标值进行更新

[[UIApplication sharedApplication]openURL:[NSURL URLWithString:url]];//打开网络连接安装最新版本

exit(0);//退出应用,自动安装  走进度 安装完成最新版本  就可以顺畅体验了

//   共         勉

转载于:https://www.cnblogs.com/tryFighting/p/6483097.html

关于版本强制升级与非强制升级相关推荐

  1. 强制升级和非强制升级

    强制升级: APP内出现弹框后,点击升级按钮进入到Play商店,点击"not now"按钮,退出APP,再次进入APP内会再次出现升级弹框:不能正常使用APP,只有升级后才能正常使 ...

  2. 数据结构 快速排序的三种实现 (hoare版本 挖坑法 前后指针版本)与非递归实现

    快速排序 hoare版本 挖坑法 前后指针版本 非递归实现快速排序 快速排序:快速排序算法通过多次比较和交换来实现排序 基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另 ...

  3. 如何由jdk的安装版本改成非安装版本

    背景. 官网一般只提供windows下的exe文件,不提供zip打包文件.有些不愿意使用安装版本. 解决方法 本文以windows 7下安装jdk-6u35-windows-x64.exe为例说明 1 ...

  4. bandizip最后一个无广告版本_如果非要选择一款压缩软件的话——Bandizip

    全世界只有不到0.00~1 % 的人关注了我们 得到你的关注是小帮的幸运 压缩解压软件是电脑一个必备软甲,前面的文章介绍了一款开源小巧无广告的压缩解压软件windows工具软件选择之压缩软件--7-Z ...

  5. 内核下断链隐藏进程(兼容多版本Windows系统,非硬编码)

    前言 在Windows内核下,我们可以通过获取EPROCESS结构来隐藏进程,EPROCESS是微软未公开的结构体,其本质上就是双向链表的一个节点,通过修改该双向链表即可达到隐藏进程的目的.但EPRO ...

  6. APP开发选择什么框架好? 请看这里!

    背景 App的开发一般都需要满足Android和iOS两个系统环境,也就意味着一个App需要定制两套实现方案,造成开发成本和维护成本都很高.为了解决这个问题,最好的办法就是实现一套代码跨端运行,所以H ...

  7. 程序员技术开发委托合同模板 私活模板

    ---需要电子word版,请关注--------- 回复:私活 含税与不含税计算工具: 假设税率是6% 不含税金额=总金额/1.06 税额=不含税金额×0.06 增值税在线计算器:http://www ...

  8. 强大的Flutter App升级功能

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 应用程序升级功能是App的基础功能之一,如果没有此功能会造 ...

  9. 关于Android 版本更新

    版本更新是个老话题了,第三方框架也有许多,在这里就不多做介绍了,给大家来点干货方便大家学习.自动安装已兼容鸿蒙及安卓10.0系统,本主要是依据后台提供的 versionCode和本地的versionC ...

最新文章

  1. 单片机I/O控制方式(UART中断和DMA中断的区别)
  2. 两个小技巧,马上加快上网速度
  3. 数据库表设计的随笔(分库分表)
  4. win8.1 无法安装 net framework3.5的解决办法
  5. python selenium unittest_python+selenium+unittest单元测试框架
  6. mysql与oracle性能对比,Oracle与MySQl对比,
  7. mysql cannot connect_【IT专家】mysql远程访问cannot connect(10038) 问题解决的过程
  8. 【LeetCode笔记】42. 接雨水(Java、动态规划)
  9. 文本编辑器nano使用
  10. php drive mssql,wamp下对MS SQLSERVER的连接配置,PHP+THINKPHP5通过
  11. 如何以子类的形式运行多进程?
  12. FPN特征金字塔网络
  13. Intellij idea注册激活码(2017年2月15日亲测可用于最新版)
  14. matlab绘制vti群速度,声波测井中的相速度与群速度讨论.PDF
  15. AutoSAR Layered Software Architecture 分层软件体系架构(初级)
  16. Verifying an Alien Dictionary
  17. 神经网络模型-ART 自适应共振网络
  18. 手把手教你制作手机底部导航栏,领导看完都说好
  19. 本地计算机用户组,管理本地用户与组账户
  20. 商业银行经营特点与三性原则:安全性、流动性、盈利性

热门文章

  1. 计算机excel2010运算符,Excel 2010 中运算符应用举例
  2. ADSP-21489的开发详解:VDSP+自己编程写代码开发(1-如何来做21489和21479的开发?简单说两句)
  3. 帧数达不到144用144hz_144Hz屏幕无用?终于发现问题所在了 尴尬
  4. “佐藤可士和”的超整理术 整理真的可以让人愉悦
  5. 自学了半个月感觉一点也没学会Python,Python真的有这么难学吗
  6. [KANZI]详解Kanzi One应用程序生命周期事件
  7. Ubuntu 网络图标不显示解决方法
  8. java笔记(第一部分语法基础)
  9. 【自然语言处理】【大模型】PaLM:基于Pathways的大语言模型
  10. Verdi详细使用总结