【发布时间】:2019-08-16 12:57:15
【问题描述】:
我的目标是让新的 Xcode 10.2 编译并运行我们使用 Swift 3 和 4.2(还有一些 cocoapods)构建的项目,并且由于 Xcode 10.2 附带 Swift 5,因此在尝试运行时出现了不受支持的 swift 错误开箱即用的项目(这是预期的):
这里的解决方案是使用像 this 这样的博客上所述的旧工具链,我这样做了。
到目前为止一切顺利。但是从Swift.org安装Swift 3工具链后,编译项目会出现如下错误:
命令 /Library/Developer/Toolchains/swift-3.0-RELEASE.xctoolchain/usr/bin/swiftc 退出代码 1 失败
我已经删除了 Derived Data 文件夹,清理了 pod (my podfile) 并重新安装了它们,多次重启了 Xcode 和 Mac。
运行 xcrun -f swift 和 swift --version 确实会打印正确的 swift 3.0 工具链
是的,我知道我可以继续使用 Xcode 10.1 而不会遇到这些问题。代码迁移到 Swift 4 也是一种选择,但我们现在手头没有时间,所以我正在尝试练习这个解决方法。
请帮我解决这个问题,我完全卡住了。提前致谢。
【问题讨论】:
-
您必须更新 Xcode 10.2 并将您的 Swift 版本迁移到 4x 或 5
-
@GovindhaRaj 是的,这是显而易见的事情,但对于这样规模的项目,需要几个月的时间。与此同时,我正在寻找一个走动,如果它存在的话。谢谢!
-
无论大小都不需要几个月的时间:要么它是一个大产品,周围有许多合格的开发人员来帮助迁移,要么它是一个中等大小的产品,你一个人,但是实验过。必须立即放弃 Swift 3。使用 Swift 迁移助手和 Stack Overflow,几天后就完成了。
-
@Cœur 需要更新的不仅是我们的代码,还有与使用过的 pod 的绑定。我们正在使用多个 pod(包括 almofire、realm 和 rxswift),它们发生了巨大的变化,因此甚至需要做很多工作才能编译项目。毫无疑问,我们总有一天会到达那里,但我正在努力赢得一些时间,因为我们的积压目前很重
-
那么,Xcode 10.1 是最快的选择:我今天在服务器上遇到了同样的问题,我用
xcode-select解决了旧版本的 Xcode 和 CI 服务器的问题。几分钟。