如何使用 Xcode 10的“ xcodebuild”的遗留构建系统?

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

事实证明,切换回遗留的构建系统可以解决这个问题。这可以在工作区设置(File > Workspace Settings... > Build System)中完成。但是我更愿意保留用于开发的新构建系统,并且只使用遗留的构建系统进行 CI 构建。

有没有一种方法可以让 xcodebuild使用遗留的构建系统而不需要修改工作区?

90190 次浏览

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将成为这个标志的“官方”标志。)

为了扩展黑尘公司的 回答,如果您使用 快车道进行自动构建,可以通过 xcargs传递诸如 UseModernBuildSystem之类的额外参数:

build_app(
// ... other necessary parameters,
xcargs: "-UseModernBuildSystem=NO"
)

选择 Xcode 10的构建系统:

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

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

希望这个帮助能让你好受些。

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

打开 Xcode —— > Select File —— > Select Workspace Settings

enter image description here

从新建系统到遗留建设系统—— > 单击完成。

enter image description here

目前,我使用的是 Xcode 版本 12.0 (12A7209),按照下面的步骤,然后您可以使用遗留的构建模式:

  1. 工作环境:

    enter image description here

  2. 设置遗留的构建模式:

    enter image description here