首页 文章

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

提问于
浏览
17

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

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

所以我去了我的目标 Build Settings ,并搜索 SWIFT_VERSION 以查看我犯错的地方 . 但是,我惊讶地发现它已经设置为 No

我该如何解决?

7 回答

  • 17

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

  • 15

    Xcode 8似乎错误地显示不存在("phantom",如果你愿意的话) No . 这有一个微不足道的解决方案:

    • 单击 SWIFT_VERSION 旁边的小箭头以切换下拉列表 .

    • DebugRelease 的值设置为 Yes .

    • DebugRelease 的值设置回 No .

    下面的图片是在将 Debug 设置为 No 之后拍摄的 . Xcode显示 DebugRelease 都设置为 No ,但 SWIFT_VERSION 读取 <Multiple Values>

    enter image description here

    由此,我只能得出结论,这是一个错误;并且某些值(或更可能是空值)被错误地表示为 No .

  • 0

    Xcode 8.3.2转到:

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

    ....作品

  • 2

    Just in case anyone else runs into the same issue I just had.

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

    My fix

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

    问题解决了 :)

  • 0

    幻影没有答案会奏效 . XCode被打破的真正原因是因为Apples XCode“使用遗留设置”实际上是一个Swift版本号 . 在XCode 8.1中,“否”被翻译为3.0.1,在XCode 8.2中,“否”转换为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

    关于“使用Legacy Swift语言版本......”我遇到了同样的问题,我已经通过设置版本来解决它,解决问题的技巧是:

    • 当你打开目标时,会显示"Convert to Current Swift Syntax"的通知,你应该选择"Later",接下来还有另外一个通知,仍然选择"Later" .

    • 如果你的目标已经添加了CocoaPods,请在podFile的末尾添加该代码:

    post_install do | installer | installer.pods_project.targets.each do | target | target.build_configurations.each do | config | config.build_settings ['SWIFT_VERSION'] ='3.0'结束

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

    • 单击pod文件,将显示所有第三方库列表 . 找出每个库的"Build Setting",并搜索"Use Legacy Swift Language Version"类型,将其值设置为YES .

    • 可能有一些警告或错误,有来自版本上传,您可以通过红色圆圈提示更正它们 .

    -----如果你没有添加cocoaPods,你可以将目标的版本设置为YES(目标 - >构建设置 - >使用Legacy Swift语言版本 - > YES)希望可以帮到你 .

  • 7

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

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

    • 切换否是 - >构建 . 你会得到更多的错误 .

    • 返回切换是否为否 . Build - >成功!

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

    全部完成 .

相关问题