Ios 使用传统Swift语言版本-Xcode 8.2

Ios 使用传统Swift语言版本-Xcode 8.2,ios,xcode,swift3,xcode8.2,Ios,Xcode,Swift3,Xcode8.2,更新到Xcode 8.2后,编译器会为我的应用程序目标抛出一个错误: 对于使用Swift的目标,需要正确配置“使用传统Swift语言版本”(Swift\U版本)。使用[编辑>转换>到当前Swift语法…]菜单选择Swift版本,或使用生成设置编辑器直接配置生成设置 但在我所有的目标中都设置为No。试图删除派生数据,清除项目目录,重新启动Xcode。没什么帮助。有人知道吗 //编辑 只是想确定一下:我已经将所有目标设置为使用传统的Swift语言版本到否,并且当在Xcode 8.1中编译时,项目工作

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


对于使用Swift的目标,需要正确配置“使用传统Swift语言版本”(Swift\U版本)。使用[编辑>转换>到当前Swift语法…]菜单选择Swift版本,或使用生成设置编辑器直接配置生成设置

但在我所有的目标中都设置为
No
。试图删除派生数据,清除项目目录,重新启动Xcode。没什么帮助。有人知道吗

//编辑


只是想确定一下:我已经将所有目标设置为
使用传统的Swift语言版本
,并且当在Xcode 8.1中编译时,项目工作正常。更新到Xcode 8.2后,它不工作

//编辑21.12


这个问题已经在Xcode 8.2.1中解决了,我终于解决了。我已经删除了这个项目并再次克隆它,重新启动了Xcode,运行了
pod repo update
pod install
,它成功了。我不知道为什么。

找到了工作。在我的项目中,我检查了每个目标(以及项目和目标中的项目设置),将每个目标的“使用传统Swift语言版本”从“否”切换到“是”,然后返回到“否”。然后,该项目再次建成


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

替换
SWIFT\u版本=3.0.1带有
SWIFT\u版本=3.0用于所有目标

重新打开Xcode。

这对我们来说不起作用:(在苹果QA发布之前,现在最好回到Xcode 8.1

如果说有什么安慰的话,那就是我们尝试过的事情,让我们非常接近。我们被困在清洁失败的地方:

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

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

重新启动
Xcode
并按住
选项
键进行深层清洁

那次清理失败了

将此添加到pod脚本中

post|u install do|installer |

installer.pods_project.targets.each do|target

target.build|u configurations.each do|config |

config.build\u设置['SWIFT\u 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?该设置在哪里?

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


这也可以解释为什么在构建设置中切换遗留版本对某些人有效。

在Xcode8.2.1中修复

以下是以下文件完整性的副本:

敏捷的 解决的问题

  • 修复了一个可能导致生成项目失败的问题,错误消息为:在使用受支持的Swift版本时,需要为使用Swift的目标正确配置“使用传统Swift语言版本”(Swift\U版本)。(29667880)
  • 当活动方案未引用使用Swift 2.3代码的目标时,Xcode不再警告使用不推荐的Swift 2.3代码。(29671741)

这是唯一对我有用的东西


对于pod的错误。基本上我们需要启用“遗留Swift语言”。选择您的pod框架(通过在错误导航器中单击它),然后在“构建设置”下找到“使用遗留Swift语言版本”

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


查看此帖子:

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

我遇到了相同的错误。我尝试进行搜索“使用传统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.)

希望这能为您带来帮助。

这是因为DerivedData文件夹保留了以前使用sym链接的Xcode版本的缓存。您需要在Xcode关闭时清空垃圾桶。删除DerivedData必须以干净的方式执行:在Xcode关闭时清空垃圾桶。删除DerviedData没有任何效果在Xcode 8.2.1OK中修复,此解决方案可以实际上对我有用。但是,我无法再在Xcode中看到此设置,因为我以前从
编辑器
菜单中选择了
显示设置名称
显示定义
。有关详细信息,
旧版本=否
对应于
SWIFT\u版本=3.0
对应于to
SWIFT\u VERSION=2.3
Unspecified
对应于
SWIFT\u VERSION=''
你怎么能找到这个令人毛骨悚然的解决方案XDDD,但它确实有效!!@patrickslin我在Xcode中已经看到这种bug很多年了,不幸的是……而且,我在发布之前通过查看实际的原始设置检查了解决方案Xcode项目的le…工作过!Cocoapods安装后出现问题使用旧的Swift语言版本这在Xcode 8.3中不再存在。2您是否尝试过rm-rf~/Library/Developer/Xcode/DerivedData/?在撰写本文时,Swift 3不再是有效选项。将用我所做的操作更新注释以修复itI无法理解它