我该如何继续使用Swift 2.3而不是3.0?Xcode已更新,无法再构建。

3

我正在开发一个应用程序,其中有20多个框架依赖项,但并非所有依赖项都支持3.0版本。因此,我希望继续使用Swift 2.3。然而,在将我的Xcode更新为8.0之后,我无法再构建我的应用程序。它会出现以下错误:

“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.

我不想立即将整个项目转换为3.0版本。

所以我的问题是,在Xcode 8.0更新后,如何保持所有内容不变?


我已经回答过一个类似于你的问题了:https://dev59.com/zprga4cB1Zd3GeqPrb1k#39485655 你可以使用它来调整你的框架。 - tech4242
请查看此链接:https://dev59.com/t1oT5IYBdhLWcg3wjwB- - Anbu.Karthik
2个回答

4

如果您想使用Swift 2.3,您应该前往Build Settings -> Use Legacy Swift Language Version -> YES,这将帮助您实现它。构建应用程序后,可能会出现一些小的语法问题。修复(不是那么难)后就可以像往常一样运行了。


现在有很多库的问题,其中一些是小问题,但我不知道如何解决其中一些问题。有更好的方法吗? - The Cook
如果您正在使用源代码控制,请回滚到您尚未更新库的提交版本。如果您已经更新了当前的库,其中一些库已被修改以符合Swift 3.0语法,因此在构建时会出现错误。在清理2.3的提交版本之后,您应该这样做:稍后转换为最新的Swift语法 - 不要更新库。 - C0mrade
但是如果我进行转换,那么它将变成3.0,而我不想要那个,对吧? - The Cook
  1. 你不应该将代码转换为最新的3.0版本。
  2. 不要更新库。
  3. 将“使用传统的Swift语言版本”设置为YES,一切都会正常工作。
- C0mrade
这是我所做的。项目正常工作和构建。1. 更新了Xcode8。2. 将使用传统的Swift语言版本设置为YES。这就是我需要做的吗? - The Cook

0

你可能想阅读这篇文章:https://swift.org/migration-guide/,或者更具体地阅读使用Carthage/CocoaPods项目部分。

我猜你可以选择在Xcode工作区中包含项目源代码的方法。这基本上意味着你将所有代码保留在Swift 2.3中,并对所有或一些外部框架进行快照,这些框架被引用为不支持Swift 3.0的Pods。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接