一个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];
=============================================================
version是app发布时用户看到的版本号。
build的为了方便开发者多次提交binary, 比如被苹果reject后。
例如,第一次提交version和build都是1.0.
假如审核没过,那么修改代码后新的构建的version还是1.0,build改为1.0.1就ok了。
这是一个很显而易见的区别,但我之前一直就没留意到. >_<