Xcode 8 Beta 3使用旧版Swift的问题

202

我在Xcode 8 Beta 3中有一个Objective-C项目。自从更新后,每次尝试构建时都会出现以下错误:

  

需要为使用Swift的目标正确配置“使用传统的Swift语言版本”(SWIFT_VERSION)。使用[编辑>转换>为当前的Swift语法…]菜单选择Swift版本或使用Build Settings编辑器直接配置构建设置。

有人遇到过这个问题吗?由于这是一个Objective-C项目,因此没有构建设置可以配置Swift。我还确保项目依赖项或CocoaPods都没有使用Swift。我的唯一解决方案是使用Beta 2。有什么办法可以解决这个问题吗?

我还应提及我正在运行OSX 10.12 Beta 2。


我也遇到了这个问题... - rockdaswift
20个回答

2

我实际上必须搜索“Legacy Swift”才能将其从未指定更改为“Yes”,当我简单地滚动到上述描述的部分时,我无法更改它。希望这能帮助某些人。


2
我的项目是用Swift编写的。我在使用fastlane时遇到了同样的错误。问题在于我的Xcode自动更新了,所以我必须将我的项目更新到Swift 3.0。出现了很多错误。修复和调试花费了太多时间,而且那时候不值得,所以我决定安装旧版本的Xcode。将我的代码还原为2.3。然后fastlane beta就无法工作了。结果发现,我需要将命令行工具设置为7.3。 enter image description here

1
在尝试复杂的解决方案之前,如果您是Cocoapods的新手并且遇到了此问题,则需要进行基本检查。您可能需要:
- 再次打开您的Podfile - 检查平台行是否被'#'注释掉了。它应该最终看起来像这样: platform :ios, '10.1' # Put the right version and no #platform here use_frameworks! # For swift pod "MyPod" # Your mean pod :) - 保存您的Podfile,关闭Xcode,然后再次运行pod install - 打开您的project.xcworkspace 也许只是这样简单。
如果不行,您可以尝试其他方法;-)

1
如果你将ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES更改为NO仍然无法正常工作,那是因为这是Xcode的问题,而不是你的问题。按照以下步骤操作:
1. 在警告目标上将ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES属性更改为YES 2. 然后左侧栏会显示一个警告,建议你更改为Swift 3.0
3. 然后再改回NO。重建项目,Xcode最终检测到你对NO的更改!
在这种情况下问题得到解决!

1
我遇到了同样的问题,通过以下方法解决:
在“项目” > “构建设置”中:
- 始终嵌入Swift标准库 = $(inherited) - 使用旧版Swift语言版本 = YES 然后在我的Podfile中: config.build_settings['SWIFT_VERSION'] = '3.0' 使用这三个设置消除了所有警告并使我能够正确编译。
最不明显的是,在Podfile中将SWIFT_VERSION从3更改为3.0,如此处所建议。

1
从XCode 8开始,即使XCode 8默认使用Swift 3.x版本,您仍然可以使用Swift 2.3。要使用Swift 2.3,请在构建设置中将“使用旧版Swift语言版本”标志打开为YES,然后XCode将针对该项目目标使用Swift 2.3。

1
我在更新到 Xcode 8.3.2 后遇到了同样的问题,但选项“使用传统 Swift 语言”已经消失。现在似乎是更改以下选项: Swift Lang Version 使用此修复方式与 Alamofire 和其他库一起使用,所有内容都可以正常工作。

1

在 Xcode 9 beta 中,前往项目设置、构建设置,搜索 Swift 语言版本。在 Xcode 9 中,您必须指定使用的是 Swift 3.2 还是 Swift 4。


我有一个项目在9.0b中,将项目和目标都设置为Swift 4仍然会产生错误,将两者都设置为Swift 3.2则可以消除错误,现在将两者都设置回Swift 4就没问题了,所以有时即使做得对也可能会出现错误。 - green_knight

1

前往项目和目标的“项目构建设置”执行以下两个步骤。

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
And
Swift Compiler - Version  = Swift 3

将代码更改为最新的Swift 3版本。

错误已解决。

如果此解决方案已修复您的错误,请点赞。


0

只需要检查以下设置

文件 -> 工作区设置 ->

1 - 检查“不显示有关构建系统弃用的诊断问题”

2 - 将构建系统设置为传统构建系统(共享工作区)

3 - 将构建系统设置为传统构建系统(用户前工作区)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接