目标 C 项目中的 Xcode 8.3 Swift 版本错误 (SWIFT_VERSION)

Posted

技术标签:

【中文标题】目标 C 项目中的 Xcode 8.3 Swift 版本错误 (SWIFT_VERSION)【英文标题】:Xcode 8.3 Swift Version Error (SWIFT_VERSION) In Objective C Project 【发布时间】:2017-04-05 19:29:58 【问题描述】:

我在纯 Objective C 项目中使用 Xcode 8.3 时遇到以下错误。

我无法找到解决方案,我的构建设置中没有 swift 参数,我也无法在线找到任何解决方案。

有什么想法吗?几天前这还不错,我能看到的唯一区别是 xcode 更新了。

"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.

【问题讨论】:

您在使用核心数据吗?解决方案在这里。 ***.com/questions/38446097/… 谢谢,但这个问题很久以前就解决了。不过还是感谢您的帮助! 【参考方案1】:

因此,解决此问题的方法是转到构建设置并单击左上角的 + 图标(如下面的屏幕截图所示)。然后选择添加带有SWIFT_VERSION3.0 值的用户定义参数。构建应用程序,它应该可以正常运行。

我还在我的 Pod 文件中添加了以下内容,以自动对 pod 依赖项构建设置执行相同的过程,尽管仅此一项并不能解决问题:

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

【讨论】:

我猜你也可以创建一个随机的*.swift 文件,因为这应该会显示 Swift 设置。 我强烈建议不要在生产环境中这样做。代码库是纯粹的 Objective C 是有原因的。如果一个大型开发团队正在处理该项目,很可能有人会删除看似毫无意义的.swift 文件。更不用说这将是不好的做法。由于它的依赖关系是用 swift 编写的,因此引入了该错误。这将是解决问题的正确方法。但是谢谢你的想法:) 我的意思是创建然后删除文件。我相信创造的行为会启用设置。 抱歉,我现在和你在一起。是的,我想这也可能是一种选择,我个人认为添加一个所需的设置不太“矫枉过正”,但这可能只是个人喜好。 如果我们删除那个swift文件,swift版本设置就消失了。【参考方案2】:

在 Project Navigitor 下点击 On Pods Project,然后去 build settings 搜索 swift_version 然后将 swift 语言版本更改为 Swift 4.0

Pods>BuildSettings>Swift 语言版本>Swift 4.0

【讨论】:

以上是关于目标 C 项目中的 Xcode 8.3 Swift 版本错误 (SWIFT_VERSION)的主要内容,如果未能解决你的问题,请参考以下文章

Socket.IO 错误:zlib 没有这样的模块(Swift 3,Xcode 8.3)

Swift - Xcode 8.3 自动完成未显示

Xcode 8.3 和 Swift 3:在 UICollectionView 中的单元格中显示图像,从 URL 获取并存储在 NSMutableArray

Xcode 8.3 Swift 3 FCM 通知上的 Firebase 问题 iOS 10.3 不起作用

使用 Xcode 8.3 的通用框架?

在 xcode 8.3 中创建一个仅限 XIB 的 Cocoa 项目