我们如果没有正确更改版本号,就会有报错,例如:

warning: The CFBundleShortVersionString of an app extension (‘1.2’) must match that of its containing parent app (‘1.0’).

The CFBundleVersion of an app extension (‘1’) must match that of its containing parent app (‘4’)

但是如果我们的项目包含小组件等,修改起来就非常麻烦,每一个都需要修改。并且在最新版的Xcode中已经不支持在xcode里直接修改版本号了,这个框被隐藏了。

版本显示框

无法修改版本

其实我们可以修改项目版本,然后让里面的target来同步这个版本号即可。

操作方法

我们的主要操作逻辑是给主工程添加版本号和build号(后面都简称版本号),然后删除里面所有target自己的版本号,这样所有target都使用主工程的版本号。这就意味着你只需要改一个主工程版本号即可。

主工程

  • 进入Project > 主要的target > Build Settings。启用“级别”。

levels

  • 在过滤器中输入 CURRENT_PROJECT_VERSION 。(这个值代表了build号)

过滤器

  • 编辑项目级别的值(双击项目列中的空值)。

我这里将1更改为2,就是将build号从1更改为2。

项目级别

  • 删除主目标水平的值(单击目标列中的值,按键盘上的Delete键)。

退格

  • MARKETING_VERSION 也是一样的操作逻辑。将其输入到过滤器中,输入项目级别的值,将其从目标级别中删除。

CURRENT_PROJECT_VERSION 代表了build号

MARKETING_VERSION 代表了版本号

以后修改

以后修改版本只需要修改主项目的versioning即可。target里面的版本号会自动同步。

修改