xcode及xcodebuild编译系统切换和版本选择

XCode10下使用原来的编译系统

当升级XCode到10版本之后,在archive时遇到报错Cycle inside

这是因为,XCode10下有了一套新的编译系统,并且是默认使用的。新的编译系统对工程有了更严格的检查。所以,会导致出现使用XCode9可以编译通过的工程,在XCode10下无法编译通过。

简单的解决方式可以使用如下的方式更改XCode10的编译系统。仍然使用旧版的编译系统。

  1. 选择File - workspace setting
xcode_workspace_setting.png
  1. 在弹出框中选择 Legacy Build System
xcode_build_system.png

xcodebuild使用旧版本编译系统

上面的方式只更改了手动通过XCode打包时编译系统。使用xcodebuild命令进行打包时的编译环境仍然使用的是最新的编译系统。

可以通过在xcodebuild命令后通过-UseModernBuildSystem=参数来指定所使用的构建系统。value=0value=NO表示使用旧版本构建系统(Legacy build system)。value=1value=YES表示使用新的构建系统。

如下所示

 xcodebuild archive -workspace Toon.xcworkspace -scheme Toon -configuration Release -archivePath ~/Desktop/Toon.xcarchive CODE_SIGN_IDENTITY="iPhone Distribution: Beijing Syswin Internet Technology Co. Ltd." PROVISIONING_PROFILE="d73920ec-9178-4f26-a0b8-c89ca2bbea6d" -UseModernBuildSystem=NO

XCode时,更改xcodebuild所使用的XCode版本

当安装了多个版本的XCode时,可以通过如下方式选择xcodebuild所使用的xcode版本的

打开xcode偏好设置,选择location

xcode_command_line_tool_select.png

或 可以通过xcode-select命令进行选择

参考资料

http://www.skyfox.org/modify-legacy-or-new-build-system.html

你可能感兴趣的:(xcode及xcodebuild编译系统切换和版本选择)