浅谈CFBundleVersion与 CFBundleShortString
定义
每次开发新版APP,我们必须要提供一个新的版本号(version number)用来和前一个版本作区分。Version number就相当于我们APP每一次释放到APP Store时的名字。然而,在成功release到市场之前,我们可能需要向APP Store提交多次(例如,被拒,或者提交后又发现了bug,需要重新提交)——在这里,文档中把每一次提交称为一次build。每次build必须有一个独立的build number以示区分。因此,每次更新的所有build构成了一个“释放队列”(release train)。对于iOS应用而言,同一个release train中的build不可重名,但不同release train之间可以;对于macOS应用而言,无论是否属于同一个release train,重名都是不允许的。
查看位置
- Target tab
如图所示,Version 表示版本号,build表示build number。一般对版本号和build号在这里进行更改,但是它们在plist中也有对应的位置。
- plist
如图所示, CFBundleVersion在此对应 version number,CFBundleVersionStringShort在此对应 build number。
两种命名习惯
无论是build number 还是version number 都由数字和点号组成,每个数字和小数点成为这个number的一个“组件”。两种number都最多不能超过三个组件,且最多不超过18个字符。
检查你的version number and build number
- 每个版本的版本号都要比前一个更高。
- 对同一个版本的应用,每一次提交的build号都要比前一次更高。对于iOS应用,不同版本中的build号可以有重复的。但是对于macOS应用,无论是否是同一个版本,每一次提交使用的build号都不允许重复!
- extension和他们的主app都必须使用同一个build number 和 version number。