【问题标题】:xcode 8 swift update with error "Use Legacy Swift Language Version"xcode 8 快速更新错误“使用旧版 Swift 语言版本”
【发布时间】:2017-01-29 17:29:00
【问题描述】:

当我在 Xcode 8 中打开我的项目时,出现以下错误

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

参考 StackOverflow 上类似的 post ,使用 Legacy Swift Language Version YES/NO 。但是通过 YES 或 No value 对我不起作用?

请帮忙。

我已经检查了 Use Legacy Swift Language Version to options YES/NO 请检查随附的屏幕截图

【问题讨论】:

标签: swift compiler-errors swift3 xcode8


【解决方案1】:

我使用的是 Xcode 8.3.3 经过太多的冲浪和工作后,我找到了这个解决方案,这对我有用。

Here are the steps.
1=> select your target from Xcode
2=> go to build setting
3=> search for "Swift Language Version"
4=> change it to swift 3. (or accordingly.)

【讨论】:

    【解决方案2】:

    作为参考this, 这就是我得出的结论(对于 Xcode 8):

    1. 如果您的代码是 swift 版本 = 2.3,那么您只需在构建设置中将 Use Legacy Swift Language Version 设置为 YES 即可。
    2. 如果你的代码是 swift 版本

      i) 将您的代码转换为 swift 2.3 并设置 'Use Legacy Swift Language Version = YES'

      ii) 将您的代码转换为最新的 Swift 版本(可能是 3.0)并设置 'Use Legacy Swift Language Version = NO'

    在我的例子中,我使用了 swift 2.2 中的外部库,导致 Xcode 8.0 出现错误,所以我用 swift 2.3 版替换了同一个库,并使用了上面的解决方案 2.i)。现在一切都很好。

    希望这对寻求解决此问题的人有所帮助。

    【讨论】:

      【解决方案3】:

      如果您不使用 pod,只需将其添加到您的 Info.plist - 我在 2.3

      因为该选项未在构建设置中列出。

      【讨论】:

        【解决方案4】:

        尝试将 swift 代码转换为 swift3 或 swift 2.3。 编辑 -> 转换 -> 到当前 swift-> 选择 swift 3 或 swift 2.3。这会奏效。

        【讨论】:

        • 我尝试在 swift3 或 swift 2.3 中转换代码,但它仍然给我编译错误
        • 请检查已编辑的问题..我已附上截图
        • 转换后,一些 api 需要按照 xcode 8 包装和展开更改。根据您的屏幕截图,所有这些更改都在一个类中。请进行这些更改,希望能解决您的问题。
        • 转换后,Legacy Swift Language Version 将仅由 xcode 设置。所以以后就不用换了
        • 转换成swift后,很多类都有变化。您是说我必须更改单个文件代码以进行转换,因为 Xcode 无法做到这一点?
        【解决方案5】:

        将此添加到您的 pod 文件中:

        # Uncomment this line to define a global platform for your project
        platform :ios, '9.0'
        # Uncomment this line if you're using Swift
        use_frameworks!
        
        target 'yourappname' do
        
        pod 'yourpodlists'
        
        post_install do |installer|
            installer.pods_project.targets.each do |target|
                target.build_configurations.each do |config|
                    config.build_settings['SWIFT_VERSION'] = '2.3'  ## or '3.0'
                end
            end
        end
        end
        

        再次运行 pod-install。使用cdm + alt + shift + k 清理您的项目。使用cmd + shift + k 再次清洁。重新启动 Xcode。建造。现在它应该可以工作了。

        如果您不使用 cocoapods,您应该可以通过将编译器版本属性 Use Legacy Swift Language Version 从 unspecified 设置为 Yes 或 No 来解决此问题。

        项目或库的构建设置 ->

        【讨论】:

        • 我刚刚回答了你一个不用 pod 文件也能做到这一点的方法?
        • 我已经检查了你的 cmets。使用旧版 Swift 语言版本,从未指定到是或否。我已经尝试过这一步,但仍然出现编译错误
        • 更新:XCode 9 在构建设置菜单下没有这个选项
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-02
        • 2020-05-27
        • 2016-11-21
        • 2017-01-28
        • 2017-04-30
        相关资源
        最近更新 更多