如何修复Xcode 10.2中的“不支持SWIFT_VERSION'3.0',支持的版本为:4.0、4.2、5.0”错误?


118

我正在尝试运行从应用程序下载的文件,尝试在Xcode中打开并出现错误:

“显示最近的消息
:-1:不支持SWIFT_VERSION'3.0',受支持的版本是:4.0、4.2、5.0。(在目标'SimpleWeather'中)”

屏幕截图已添加


更新内容。3.0是斯威夫特进化速度方面很老
vadian

2
我正在使用Xcode 10.2并尝试打开旧的3.0,但是无法运行程序,因为我有错误。
vlad uvarov

在Xcode 10.1中打开并更新项目。磁盘上可能有多个不同版本的Xcode。
瓦迪安

1
Xcode的更新版本;(
vlad uvarov

7
我的天啊!!!我花了三个小时的时间下载XCode 10.2,结果发现我无法再构建自己的应用了。我没有XCode 10.1的备份!这只是苹果公司应该为我付出的疯狂。
vojta

Answers:


98

在项目中选择目标“ SimpleWeather”并更改语言版本Target-> build setting-> Swift编译器语言->选择5,4.2,等等

用于更改编译器语言的构建设置的图像


76

********最简单的方法:**********

1.单击左列中的POD。

2.在中心列中,选择所需的窗格,然后在右上方的面板中导航到“构建设置”。

3.然后搜索“快速语言版本”并更改为已知版本。

在此处输入图片说明 在此处输入图片说明


1
感谢你。这是我寻找的答案。
维奴雅各布

屏幕截图有助于查找。
Namo

53

对于Xcode 10.1,选择您的Pods文件

在此处输入图片说明

->转到构建设置->选择您的Pod->搜索“ Swift”->导航到“ Swift语言版本”->设置为所需的语言版本。

在此处输入图片说明


9
如果Swift版本是3.x并且您的Xcode版本大于10.2
Juan P. Ortiz,则

12

我按照此页面上的说明进行操作,但错误未解决。最后进入

$ vim MyProject.xcodeproj/project.pbxproj

发现两个实例

SWIFT_VERSION = 3.0;

仍在引用中。我将其更改为5.0,错误消失了。不知道为什么那两个还在那里。


1
我使用了Apple的从Swift 3.0迁移到5.0 的指南,但是该助手没有显示任何建议。在上面的答案中修改了这两行后,它立即提示我进行迁移。感谢您分享此解决方案@Forrest
Kareem Jeiroudi

太棒了!很高兴为您提供了帮助@KareemJeiroudi
福雷斯特

2
谢谢,这对我有很大帮助。我搜寻了半个小时,找出了解决方案……
Dharmik '19

2
这也为我工作。在上面做一个类,示例项目的版本错误。
十六弦



7

在您的情况下,该应用似乎可能具有旧的Swift版本代码,例如Swift 3.0。在Xcode版本10.2中已经启动了Swift 5.0版本。Xcode 10.2不支持Swift 3.0版本的编译器。您可以从更改编译器Build Settings -> Swift Compiler - Language -> Swift Language Version -> Change it to Swift 5。如果您的代码与该语言版本兼容,则它将正确运行代码。

但是,Swift 5编译器将不支持Swift 3兼容模式。Swift 4.2是Swift的最新版本,支持Swift 3模式。在Swift 3之后的发行版中,语言的表面及其内部实现都发生了重要变化,这将成为未来(和持久)源代码和二进制稳定性的基础。

请参阅下面的链接以获取更多详细信息。 https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_release_notes/swift_5_release_notes_for_xcode_10_2

如果您确实希望运行包含旧版Swift代码的应用程序,则必须使用旧版Xcode。您可以使用Xcode版本10.1,它的编译器支持Swift 3.0版本。

另一种替代方法是将旧的Swift代码迁移到Swift版本的新版本。您可以将Xcode 10.1版本中的Swift 3.0迁移到Swift 4.0。

有关迁移指南,请参阅此 https://swift.org/migration-guide-swift4/


5

我在开发Cocoapod时遇到了这个问题。我的存储库中有一个旧.swift-version文件,该文件指定了Swift 3.0。

跑步pod lib lint --verbose使我得到了有益的回应:

请删除.swift-version现已弃用的文件,仅swift_version在podspec中使用该属性。

我删除了文件并将其添加spec.swift_version = '5.0'到我的podspec文件中以解决此问题。


4
  1. 看一下这个:
    1. 点击项目名称
    2. 点击目标
    3. 点击构建设置
    4. 在Swift语言版本:选择Swift 4

在此处输入图片说明

在此处输入图片说明


4

我打开了文件MyProject.xcodeproj (使用VSCode编辑器)

我发现了几行

SWIFT_VERSION = 3.0;

(大约在第400行显示/* Begin XCBuildConfiguration section */

修改为SWIFT_VERSION = 5.0或其他。之后,我可以构建并运行该项目。



1

如果您像我一样处理多个Pod文件,而使用SWIFT_Version = 3.0找不到Pod,请尝试使用搜索栏



0

我是iOS开发的新手。在遵循以上所有答案之后,我仍然遇到相同的错误。我使用的是Xcode 11,我从Apple Developer网站下载了“ FoodTracker ”示例,在尝试构建它时遇到了同样的错误。我发现在VIM项目文件内容之后,该项目具有一些引用Swift语言版本的设置。因此,我通过将Swift语言版本的“项目> FoodTracker”以及“目标> FoodTracker”和“目标> FoodTrackerTests”设置为5.0来解决此问题。希望能帮助到你。

在项目和所有目标上设置Swift语言版本


-1
  1. 在编辑器中打开MyProject.xcodeproj / project.pbxproj(eq Sublime)

示例Calculator.xcodeproj

  1. 重命名所有SWIFT_VERSION = 3.0; 重命名所有SWIFT_VERSION = 5.0;

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.