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>参数来指定所使用的构建系统。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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 4,577评论 0 12
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,026评论 3 119
  • 张博舜阅读 516评论 0 1
  • 在家不到四天,现在就有种想走的感觉,果然相见不如怀念。跟家人相处太难,意见不合观点不同,容易发生矛盾冲突,一回来就...
    小芳Funny阅读 209评论 0 0
  • 另一只袖子/射手 说起袖子,不由想起袖套 小时候,妈为了袖口不被磨脏、磨破 用两块素点的布料 穿上两根长短不一的松...
    射手诗歌阅读 273评论 0 0