我想使用新的Xcode 10构建系统进行开发,但是我们在我们的持续集成系统中的构建失败了,因为生成的xcarchive有一个问题:xcarchive中的Info.plist缺少ApplicationProperties键和其中的信息!
原来,切换回遗留构建系统修复了这个问题。这可以在工作区设置中完成(文件>工作区设置…)>建立系统)。但是我更愿意为开发保留新的构建系统,并且只将遗留的构建系统用于CI构建。
有没有一种方法可以让xcodebuild在不修改工作区的情况下使用遗留构建系统?
发布于 2018-07-06 07:33:00
xcodebuild中有(到目前为止还没有文档化)标志:-UseModernBuildSystem=<value>。值可以是0或NO来使用遗留的(“原始”)构建系统,也可以是1或YES来使用新的构建系统。
例如:
xcodebuild -workspace Foo.xcworkspace -scheme Bar -configuration Release -archivePath /path/to/Foo.xcarchive clean archive -UseModernBuildSystem=NO(-UseNewBuildSystem=<value>似乎也起作用;这个标志是在Xcode 9中引入的,但我怀疑UseModernBuildSystem将成为这方面的“官方”标志。)
发布于 2019-02-16 05:30:58
将构建系统从Legacy Build System改为New Build System,反之亦然。
打开Xcode -->选择文件-->选择工作区设置

将“新建系统”更改为“传统构建系统”-->单击“完成”。

发布于 2018-11-14 18:12:20
为了扩展暗尘的answer,如果您使用fastlane进行自动构建,可以通过xcargs传递其他参数,例如UseModernBuildSystem
build_app(
// ... other necessary parameters,
xcargs: "-UseModernBuildSystem=NO"
)https://stackoverflow.com/questions/51205221
复制相似问题