如何在Xcode 9上构建Swift 3项目?

时间:2017-06-06 12:06:37

标签: ios xcode swift3 swift4 xcode9

Xcode 9 Release Notes表示支持Swift 3编译:

  

Swift 4和Swift 3 ,Swift 4和Swift 3目标的一个编译器可以在同一个项目中一起编译。

我已经安装了Xcode 9 beta。 但是,当我按下Build时,它会显示一堆错误。在Xcode 9中使用Swift 3时是否需要做一些特殊的准备工作?

UPD: Module compiled with Swift 3.1 cannot be imported in Swift 4.0

使用Swift 3.1编译的模块无法在Swift 4.0中导入

5 个答案:

答案 0 :(得分:58)

选择目标,转到Build Settings > Swift Language Version

enter image description here

答案 1 :(得分:9)

以上所有答案都回答错误的问题。使用Xcode 9时,您正在使用Swift 4编译器(即使您使用它编译Swift 3代码)来解决此问题,使用适当的编译器/ Xcode重新编译。

如果您尝试通过命令行执行此操作,则可以使用sudo xcode-select -switch在xcode版本之间切换。祝你好运!

答案 2 :(得分:4)

Xcode 10.1和Swift 4.2的更新

快速目标3、4和4.2可以共存并链接在一起。

  

您可以根据目标确定何时以及是否要迁移   当对您的项目有意义时。迁移到Swift 4.2时   绝对值得鼓励,这不是一个全有或全无的过程,就像Swift 3一样,   4、4.2目标可以共存并链接在一起。

不同的coapapod和不同的项目版本也可以共存。

您希望与项目版本具有不同的cocoapod版本,然后应在pod文件末尾进行以下更改:

let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.firstLineHeadIndent = 10

// Swift 4.2++
label.attributedText = NSAttributedString(string: "Your text", attributes: [NSAttributedString.Key.paragraphStyle: paragraphStyle])

// Swift 4.1--
label.attributedText = NSAttributedString(string: "Your text", attributes: [NSAttributedStringKey.paragraphStyle: paragraphStyle])

有时甚至在运行pod更新后,您的xcode都会强制更新cocoapod pod项目的版本,在这种情况下,请选择cocoapod pod项目并在构建设置中更改swift版本。

答案 3 :(得分:3)

我有同样的问题 - (我安装了pod,swift版本是3x,我的项目的swift版本是Swift 4.所以我有很多编译器错误。后来我把Swift版本4改为3.2并尝试构建项目,我再次遇到编译器错误。我认为这是因为我运行pod安装而我的项目是在Swift 4中。)

  • 首先,您需要从构建设置更改“Swift语言版本”。
  • 如果您安装了任何pod,则只更改“Swift语言版本”将无济于事。您可能需要为项目运行pod安装。

答案 4 :(得分:2)

Xcode 9需要使用Swift 3.2或更高版本构建框架。转到https://github.com/emaloney/CleanroomLogger,然后点击下载ZIP。在Xcode中打开xcodeproj 9.按⌘B。 CleanroomLogger.framework从红色变为黑色。将框架拖到项目中。请参阅相关问题:Realm issue with Swift 3.1

build it