77

我想使用 Xcode 10 的新构建系统进行开发,但是我们在持续集成系统中的构建失败了,因为生成的有xcarchive一个问题:缺少密钥和其中的信息!Info.plistxcarchiveApplicationProperties

事实证明,切换回旧版构建系统可以解决此问题。这可以在工作区设置中完成(文件 > 工作区设置... > 构建系统)。但我更愿意保留新的构建系统进行开发,只使用旧的构建系统进行 CI 构建。

有没有办法在xcodebuild不修改工作空间的情况下使用旧版构建系统?

4

5 回答 5

110

xcodebuild在:中有一个(尚未记录的)标志-UseModernBuildSystem=<value>。该值可以是0NO使用旧的(“原始”)构建系统,或者1YES使用新的构建系统。

例如:

xcodebuild -workspace Foo.xcworkspace -scheme Bar -configuration Release -archivePath /path/to/Foo.xcarchive clean archive -UseModernBuildSystem=NO

-UseNewBuildSystem=<value>似乎也可以;这个标志是在 Xcode 9 中引入的,但我怀疑UseModernBuildSystem这将成为“官方”标志。)

于 2018-07-06T07:33:00.537 回答
47

将构建系统更改为Legacy Build Systemfrom New Build System,反之亦然。

打开 Xcode --> 选择文件 --> 选择工作区设置

在此处输入图像描述

将 Build System 从 New Build System 更改为 Legacy Build System --> 单击 Done。

在此处输入图像描述

于 2019-02-16T05:30:58.577 回答
38

要选择 Xcode 10 的构建系统:

在 Xcode 中,转到:文件 -> 项目设置(或工作区设置)-> 构建系统

从那里您可以选择New Build System (Default)Legacy Build System

希望这个帮助能让这更容易。

于 2019-01-06T04:41:16.960 回答
38

为了扩展 DarkDust 的答案,如果您使用fastlaneUseModernBuildSystem进行自动构建,可以传递其他参数,例如xcargs

build_app(
   // ... other necessary parameters,
   xcargs: "-UseModernBuildSystem=NO"
)
于 2018-11-14T18:12:20.653 回答
13

目前,我正在使用 Xcode 版本12.0 (12A7209)并按照以下步骤操作,然后您可以使用旧版构建模式:

  1. 工作区设置:

    在此处输入图像描述

  2. 设置旧版构建模式:

    在此处输入图像描述

于 2020-09-26T09:49:57.957 回答