我想使用Xcode 10的新构建系统进行开发,但是我们在持续集成系统中的构建失败,因为产生的xcarchive
存在问题:{{ 1}}缺少Info.plist
键及其中的信息!
事实证明,切换回旧版构建系统可以解决此问题。这可以在工作空间设置(文件>工作空间设置…>构建系统)中完成。但是我宁愿保留新的构建系统进行开发,而仅将旧的构建系统用于CI构建。
是否有一种方法可以使xcarchive
使用旧版构建系统而不修改工作区?
答案 0 :(得分:64)
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
将会是对此的“正式”标志。)
答案 1 :(得分:21)
要扩展DarkDust的answer,如果您使用 fastlane 进行自动构建,则可以通过UseModernBuildSystem
传递其他参数,例如xcargs
:< / p>
build_app(
// ... other necessary parameters,
xcargs: "-UseModernBuildSystem=NO"
)
答案 2 :(得分:8)
要选择Xcode 10的构建系统,请执行以下操作:
在Xcode中,转到:文件->项目设置(或工作区设置)->构建系统
从那里您可以选择New Build System (Default)
或Legacy Build System
希望此帮助使操作变得更容易。
答案 3 :(得分:7)
将构建系统从Legacy Build System
更改为New Build System
,反之亦然。
打开Xcode->选择文件->选择工作区设置
将构建系统从新构建系统更改为旧版构建系统->单击完成。
答案 4 :(得分:0)