关于App版本号和暗开关

版本号并不是一个数字,而是一个字符串
所谓 暗开关 是指我通过服务端写接口来控制通过appstore审核的,例如用来屏蔽微博分享或者一些苹果审核禁止的功能.

1.版本号

版本号的获取,很简单

 [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]

版本号会有两个小数点, 形如1.1.1, 故不能用浮点数来判断版本号大小.
在iOS中用compare:方法判断字符串.

NSString *currentSystemVersion = kSystemVersion;
if ([currentSystemVersion compare:@"5.1"] != NSOrderedAscending) 
{
  //当前iOS版本大于5.1
}
else if ([currentSystemVersion compare:@"5.0.1"] != NSOrderedAscending) 
{    
  //当前iOS版本大于5.0.1
}

NSOrdered 说白了,实际上就是>=<, -1,0,1,返回值是一个比较的结果.
NSOrderedAsceding是其中一个枚举, 详细参见文档.
这种比较方法很方便,不仅可以进行5.1与6.1的比较,还可以细化到5.1和5.0.1版本的比较。之所以需要细化,是因为每一个小版本之间,sdk还有有一些差异的,就比如避免文件被备份到iCloud,实现方式在5.1和5.0.1不同。

php中的方法

<?php
if (version_compare("5.2", PHP_VERSION, ">")) 
{ 
  //("PHP 5.2 or greater is required!!!"); 
}
?>
2.暗开关

由于开关是服务器控制, 所以我们不能在开关关闭时关闭所有已经上线的版本. 只能对最新的版本进行操作.
因此参数要传递当前版本号, 判断是否为最新版本, 若为最新版本返回已经设置好的开关, 如果是旧版本则永远为true,不干涉老版本.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,799评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,758评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,888评论 6 13
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,262评论 4 61
  • 大学里的孤独是如此的难受! 前几天读了一篇博客,说在大学里有种孤独是你必须承受的。回想到自己的大学生活,的确给说中...
    心的地方阅读 1,703评论 2 0