“使用旧版 Swift 语言版本”(SWIFT_VERSION) 需要为使用 Swift 的目标正确配置。”

“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift."

自从我更新到 Xcode 8.2(GM 种子,来自 App Store)后,我一直卡在以下错误中:

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.

所以我去了目标的 Build Settings,并搜索了 SWIFT_VERSION 以查看我哪里出错了。然而,我惊讶地发现它已经设置为 No!

我该如何解决这个问题?

Xcode 8 似乎错误地显示了一个不存在的("phantom",如果你愿意的话)No。对此有一个简单的修复:

  1. 单击 SWIFT_VERSION 旁边的小箭头切换下拉列表。
  2. DebugRelease 的值设置为 Yes.
  3. DebugRelease 的值设置回 No.

下图是刚把Debug设置为No后拍的。 Xcode表示DebugRelease都设置为No,但是 SWIFT_VERSION 读取 <Multiple Values>:

由此,我只能断定这是一个bug;并且某些值(或者更可能是空值)被错误地表示为 No.

我也遇到过同样的问题"Use Legacy Swift Language Version..",我是通过设置版本解决的,解决问题的技巧是:

  1. 当你打开目标时,会出现"Convert to Current Swift Syntax"的通知,你应该选择"Later",接下来还有一个通知,仍然选择"Later"。
  2. 如果您的目标已经添加了 CocoaPods,请在您的 podFile 末尾添加该代码:

    post_install 做|安装程序| installer.pods_project.targets.each 做|目标| target.build_configurations.each 做|配置| config.build_settings['SWIFT_VERSION'] = '3.0' 结束结束结束

添加该代码后,请更新 cocoaPods。

  1. 点击pod文件,会显示所有第三方库列表。找出每个库的"Build Setting",并搜索"Use Legacy Swift Language Version"类型,将其值设置为YES。
  2. 可能会出现一些警告或错误,有来自版本上传的,您可以通过红圈提示进行更正。

-----如果你不添加cocoaPods,你可以将targets的版本设置为YES(TARGETS->Build Setting-->Use Legacy Swift Language Version-->YES) 希望能帮到你。

幻影没有答案会起作用。 XCode 损坏的真正原因是因为 Apples XCode "use legacy setting" 确实是一个 Swift 版本号。在 XCode 8.1 中 'No' 翻译成 3.0.1,在 XCode 8.2 中 'No' 翻译成 3.0。所以你需要将版本切换到 Swift 3.0 。这是有道理的。我猜是 XCode 8.1 中的错误。

我的 git 差异:

--- a/ios/myapp.xcodeproj/project.pbxproj
+++ b/ios/myapp.xcodeproj/project.pbxproj
@@ -1757,7 +1757,7 @@
                                SDKROOT = iphoneos;
                                SKIP_INSTALL = YES;
                                SWIFT_OPTIMIZATION_LEVEL = "-Onone";
-                               SWIFT_VERSION = 3.0.1;
+                               SWIFT_VERSION = 3.0;
                                TARGETED_DEVICE_FAMILY = "1,2";
                        };
                        name = Debug;

我看到上面的评论有相同的答案只是认为它需要更加突出。

我昨天遇到了同样的问题。修复步骤:

  1. 构建设置 -> 搜索 swift,选择使用旧版 swift 语言版本

  2. 将否切换为是 -> 构建。你会得到更多的错误。

  3. 向后切换是到否。构建 -> 成功!

有时候苹果会让我们变得如此疯狂:)

全部完成。

请selectpod alamofire中的target,搜索'SWIFT_VERSION',selectswift3.

以防其他人遇到我刚刚遇到的同样问题。

我有一个应用程序已准备好在应用程序商店上发布,但我一直在等待,与此同时我更新到 Xcode 9 beta 并四处乱逛,更改了我的应用程序中的一些内容。我去把它上传到应用程序商店,它说你不能使用测试版上传所以我回到 Xcode 8 但它开始给我“Swift 语言版本”(SWIFT_VERSION)...”错误。

我的修复

在您的项目构建设置下 > Swift 编译器版本 > 我不得不将其从 Swift 4(currently not supported) 更改为 Swift 3

问题已解决:)

Xcode 8.3.2 转到:

构建设置 > Swift 编译器 - 版本 > 更改 Swift 版本

..有效