如何将遗留构建系统与Xcode 10的`xcodebuild`一起使用?

Dar*_*ust 49 xcode continuous-integration xcodebuild xcode10

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

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

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

Dar*_*ust 80

有一个(尚未无证)标志xcodebuild:-UseModernBuildSystem=<value>.该值可以是0NO使用传统的("原始")建立系统,或者1YES使用新的编译系统.

例如:

xcodebuild -workspace Foo.xcworkspace -scheme Bar -configuration Release -archivePath /path/to/Foo.xcarchive clean archive -UseModernBuildSystem=NO
Run Code Online (Sandbox Code Playgroud)

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


nik*_*cic 28

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

build_app(
   // ... other necessary parameters,
   xcargs: "-UseModernBuildSystem=NO"
)
Run Code Online (Sandbox Code Playgroud)


Cra*_*One 20

要选择Xcode 10的构建系统:

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

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

希望这个帮助使这更容易.

  • 这将改变项目设置.问题是_xcodebuild使用遗留构建系统**而不修改工作区**_ (6认同)
  • 真正的尼科,谢谢你的澄清。希望这会帮助那些确实需要它的人。 (2认同)

iOS*_*iOS 17

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

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

在此处输入图片说明

将构建系统从新构建系统更改为旧版构建系统->单击完成。

在此处输入图片说明

  • 谢谢,但是正如问题所述,这已经众所周知。这个问题是关于`xcodebuild`工具的。 (2认同)

Ame*_*icA 11

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

  1. 工作区设置:

    在此处输入图片说明

  2. 设置旧版构建模式:

    在此处输入图片说明