20

更新到 Xcode 8.2 后,编译器会为我的 App 目标抛出一个错误:

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

但是将其设置为No我拥有的所有目标。试图删除派生数据,清理项目目录,重新启动 Xcode。没有什么帮助。有人想通吗?

// 已编辑

只是为了确定:我已将所有目标设置为Use Legacy Swift Language VersionNo并且在 Xcode 8.1 中编译时项目工作正常。更新到 Xcode 8.2 后它不起作用。

// 编辑 21.12。

该问题已在 Xcode 8.2.1 中修复

4

9 回答 9

32

找到工作。我浏览了项目中的每个目标(以及项目设置,因此在项目和目标中),将“使用旧版 Swift 语言版本”从“”切换到“,然后再切换回“”。然后再次构建该项目。

在此处输入图像描述

于 2016-12-13T11:24:23.470 回答
5

我得到了同样的错误。我尝试搜索“使用旧版 Swift 语言版本”,但没有找到。我正在使用 Xcode 8.3.3 在浏览过多并解决之后,我找到了这个解决方案,这对我有用。

Follow these 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.)

希望这对你有用。

于 2017-10-24T07:28:20.513 回答
4

在 Xcode 8.2.1中修复。

这是Xcode 8.2.1更新日志完整性的副本:

迅速

已解决的问题

  • 修复了在使用支持的 Swift 版本时,可能导致构建项目失败并显示错误消息“需要为使用 Swift 的目标正确配置”(SWIFT_VERSION) 的错误消息。(29667880)
  • 当活动方案未使用 Swift 2.3 代码引用目标时,Xcode 不再警告使用已弃用的 Swift 2.3 代码。(29671741)
于 2016-12-20T10:18:04.923 回答
3

project.pbxproj关闭 Xcode 并在您选择的文本编辑器中打开相应的代码。

替换SWIFT_VERSION = 3.0.1;SWIFT_VERSION = 3.0;所有目标。

重新打开 Xcode。

于 2016-12-13T17:45:28.003 回答
3

这是唯一对我有用的东西......

对于 pod 的错误。基本上我们需要启用“Legacy Swift Language”。选择您的 pod 框架(通过在错误导航器中单击它)并在 Build Settings 下找到“Use Legacy Swift Language Version”</p>

在此处输入图像描述

将其设置为“是”。然后再次“构建并运行”以对其进行测试。

查看这篇文章:http ://rebeloper.com/downgrade-swift-3-swift-2-3-xcode-8/

于 2017-01-14T19:18:58.677 回答
1

好吧,我终于弄明白了。我已经删除了该项目并再次克隆它,重新启动 Xcode,运行pod repo update并且pod install它工作。我不知道为什么。

于 2016-12-13T11:03:39.410 回答
0

事实证明,Apple 决定引用 pbxprojec 文件中尚不存在的 swift 语言版本。他们对 3.0.1 进行了硬编码,并通过手动将 pbx 文件中的 sudo XML 编辑回 3.0,一切都恢复了。Apple 在发布 8.2 之前显然忽略了一些简单的 QA 工作

这也可以解释为什么在构建设置中的旧版之间切换对某些人有用。

于 2016-12-16T21:02:40.783 回答
0

将我的应用程序的一部分(Obj C 和 Swift)转换为框架时,我遇到了同样的错误,但在我的情况下,构建设置下的“Swift 语言版本”没有设置。我将它设置为 Swift 3(唯一的选项),错误就消失了。

于 2017-05-07T14:35:26.123 回答
0

这对我们不起作用:(现在最好恢复到 Xcode 8.1,直到 Apple QA 在他们发布之前他们的东西。

如果它有任何安慰是我们尝试过的并且让我们非常接近的事情。我们陷入了清理失败:

rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache

rm -rf ~/Library/Preferences/com.apple.Xcode.plist

重新启动Xcode并握住option钥匙进行深度清洁

这摆脱了清洁失败。

将此添加到您的 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

这是让所有 pod 都符合 3.0 的方法,我们实际上已经构建了它,但是在编译结束时我们得到了这个错误:

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

我们如何改变工作空间,让所有项目都符合 swift 3.0?那个设定在哪里?

于 2016-12-13T23:40:04.330 回答