对于使用Swift的目标,需要正确配置“使用Legacy Swift语言版本”(SWIFT_VERSION)。"

时间:2016-12-15 06:36:02

标签: swift xcode compiler-errors build-error build-settings

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

  

使用Legacy Swift语言版本“(SWIFT_VERSION)是必需的   为使用Swift的目标正确配置。使用[编辑>   转换> To Current Swift Syntax ...]菜单选择一个Swift版本或   使用Build Settings编辑器直接配置构建设置。

所以我去了我的目标构建设置,并搜索 SWIFT_VERSION 以查看我在哪里犯错。但是,我很惊讶地发现它已经设置为 No

我该如何解决这个问题?

7 个答案:

答案 0 :(得分:17)

请在pod alamofire中选择目标,搜索' SWIFT_VERSION',选择swift3。enter image description here

答案 1 :(得分:15)

Xcode 8似乎错误地显示不存在("幻像",如果你愿意) No 。对此有一个微不足道的解决方法:

  1. 点击 SWIFT_VERSION 旁边的小箭头,切换下拉列表。
  2. Debug Release 的值设置为 Yes
  3. Debug Release 的值设置回 No
  4. 下面的图片是在将 Debug 设置为 No 之后拍摄的。 Xcode显示 Debug Release 都设置为 No ,但 { {1}} 读取SWIFT_VERSION

    enter image description here

    由此,我只能得出结论,这是一个错误;并且某些值(或更可能是空值)被误传为 <Multiple Values>

答案 2 :(得分:7)

Xcode 8.3.2转到:

构建设置&gt; Swift编译器 - Viersion&gt;改变Swift版本

...作品

答案 3 :(得分:2)

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

我有一个应用程序准备启动到应用程序商店,但我在等待,同时我更新到Xcode 9测试版并且正在搞乱,改变了我的应用程序中的一些东西。我把它上传到应用程序商店,它说你不能使用beta版本上传,所以我回到了Xcode 8,但它开始给我“Swift语言版本”(SWIFT_VERSION)......“错误。

我的修复

在您的项目构建设置&gt; Swift编译器版本&gt;我必须将其从Swift 4(currently not supported)更改为Swift 3

解决问题:)

答案 4 :(得分:1)

幽灵没有答案可行。 XCode被打破的真正原因是苹果XCode&#34;使用传统设置&#34;真的是一个Swift版本号。在XCode 8.1&#39; No&#39;翻译为3.0.1,在XCode 8.2&#39; No&#39;转换为3.0。所以你需要将版本切换到Swift 3.0。这是有道理的。我想是XCode 8.1中的一个错误。

我的git diff:

--- 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;

我看到上面的评论有相同的答案,只是认为它需要脱颖而出。

答案 5 :(得分:0)

我遇到了“使用Legacy Swift语言版本......”的相同问题,我通过设置版本解决了这个问题,解决问题的提示是:

  1. 当你打开目标时,会显示“转换为当前Swift语法”的通知,你应该选择“稍后”,接下来还有另一个通知,仍然选择“稍后”。
  2. 如果你的目标已经添加了CocoaPods,请在podFile的末尾添加该代码:

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

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

    1. 单击pod文件,将显示所有第三方库列表。找出每个库的“Build Setting”,并搜索“Use Legacy Swift Language Version”类型,将其值设置为YES。
    2. 可能存在一些警告或错误,有版本上传,您可以通过红圈提示进行更正。
    3. -----如果你没有添加cocoaPods,你可以将目标版本设置为YES(TARGETS-&gt; Build Setting - &gt; Use Legacy Swift Language Version - &gt; YES)  希望能帮到你。

答案 6 :(得分:0)

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

  1. 构建设置 - &gt;搜索swift,选择使用遗留的swift语言版本

  2. 否定是 - &gt;建立。你会得到更多的错误。

  3. 返回切换是否为否。构建 - &gt;成功!

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

    全部完成。