什么是
BundleVersion
关于iOS工程的版本设置我们注意到,工程中的
Info.Plist配置中有两个字段,BundleVersion和BundleShortVersionString
。

工程target文件中我们也可以看到:

从以上的图示我们可以看到这些参数的对应关系:

Bundle version 对应Build的参数,为开发和测试使用的。通常我们用整数计,且逐一增加(可以每build一次就增加一次)。而Bundle version string,short 是给用户使用,通常是小数点间隔数表示(如:1.0.2,3.5.12),通常我们将他作为升级的标记。对于开发人员,我们更关心Bundle version的意义。在同版本(Bundle version string,short)下,Bundle version可以是不同的。不同测试包以它为标记来区分,这使得发现问题时能明确测试包的编译版本,进而明确代码版本。也就是说Bundle version能帮助我们更准确高效的定位问题。
如何使用:
搜索了一下网上的资料,发现关于设置BuildVersion的增加功能的流程,基本都用到了脚本,脚本的写法略有不同。这里举例是用到了Apple自身的方法:

然后填写脚本语句(这里调用Apple的系统方法)

脚本代码:
然后开启 Apple的系统方法设置xcrun agvtool next-version -all

好了,可以编译工程试一试。看看你设置的BuildVersion数值是不是有增加。
关于使用的建议:
如果是多人开发,会存在每个人开发的分支多次编译导致Build版本不准的情况,但不影响开发进程。对于开发我们需要注意的是每次测试测试前的Build版本。确保它增加,就,可以了!至于是否要release时增加,是否需要手动修改,这个可以根据实际情况调整。毕竟,Build版本号只是一个辅助的参数。