使用Swift 3.0编译的模块无法在Swift 2.3中导入

时间:2016-08-26 08:49:39

标签: ios swift xcode

这就是我的所作所为:

import BSTableViewReorder

并收到以下错误:

  

使用Swift 3.0编译的模块无法在Swift 2.3中导入

我可以做些什么来让它编译?我做了:

Edit > Convert -> Current Swift Syntax

使用Xcode 8和macOS Sierra。

对于两者:目标和项目我有Use Legacy Swift Language Version

的以下设置

enter image description here enter image description here

该项目是我对cocoapods依赖项的pod。我刚刚将项目转换为Swift 3.0,但它没有编译。

3 个答案:

答案 0 :(得分:27)

您需要将Use Legacy Swift Language Version更改为NO - 这样可确保您的项目使用swift 3.

如果您想将项目打包为POD(对于cocoapods),您需要添加名为.swift-version的文件(包含1个单行," 3.0")。 这将告诉cocoapods使用swift 3编译器。

在此更改后,一切都应该有效。

答案 1 :(得分:0)

如果您正在使用任何第三方框架,只需为Xcode 8.1更新一次,并将使用旧版Swift语言版本更改为NO。

答案 2 :(得分:0)

就我而言,框架开发人员在代码dotnet watch run中添加了这一行:

Podfile

正如您所看到的,他们违反了2.3'#,这导致了问题,因为我运行的是3.0。只需删除config.build_settings['SWIFT_VERSION'] = '2.3' # or '3.0' 并让'2.3' # or解决问题。