版本Version,Release,Build 和 Edition 之间的区别
Version -- 软件的公开发行版本,强调功能性。通常在功能方面有一定的/重大改变、改进或增加,包括对一些重大bug的修复。例如:V1.0, V1.01, V2.0, V2.3...,Windows 2000, XP, Vista, 7 等。
Release -- 软件的公开发行版本,强调软件由调试/内测阶段转为正式发布/发行阶段。
Build --
对程序源代码做任何修改并重新编译后生成的版本,可能发生在软件公开发行前的调试、优化、测试阶段,也可能发生在软件正式发布后。同release相比,其发生较为频繁,每编译一次,即会产生一个
build。例如:SDL Trados 8.3.0.863 (Build 863)
Edition -- 通常表示按特定对象、特定群体进行分类的软件版本,强调软件的目标受众。例如: Trados 6.5 Freelance Edition, LSP Edition; Windows XP Home Edition, BussIness Edition。
Version和Build的区别
一个version,一个build,都是设置版本的地方,有什么区别呢?
在ios中(Android等工程中也一样),有两种version,一种是 CFBundleVersion ("Bundle Version"),也就是我们看到的version,另一种是CFBundleShortVersionString ("Bundle version string, short"),也就是我们看到的Build。
普通情况下,我们只使用version即可,设置为"1.0", "1.1", "2.0" , etc,但如果你要使用两个版本号时候,需要将build设置为1,2,3...等递增的整数,有什么用呢?
version我们可以通过App Store、itunes或其它软件看到,是给用户看的,而build是我们在团队开发中内部只用的,只有我们自己可以看到。比如团队打算发布1.0版本的时候,会发布很多build版本供测试或QA团队进行测试,你发布了很多build,因为一直在修改着代码,因此当你收到一条bug信息时候,你怎么知道是那个build引起的问题呢,这时候build版本号的有点就可以体现出来了
当前运行版本信息可以通过info.plist文件中的bundle version中获取:
NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
CFShow(infoDic);
可以自己输出看一下CFShow打印出来的时什么
下面的代码是如果你想在UI上展示给用户看的获取Version的代码,对比是否升级也是通过version对比,而不是build,也是用下面代码
NSString * appVersion = [[NSBundle mainBundle]objectForInfoDictionaryKey:(NSString*)kCFBundleVersionKey];