使用Swift 3.0编译的模块不能在Swift 2.3中导入

这就是我所做的:

import BSTableViewReorder 

并得到以下错误:

使用Swift 3.0编译的模块不能在Swift 2.3中导入

我能做些什么来编译它? 我做了:

 Edit > Convert -> Current Swift Syntax 

使用Xcode 8和macOS Sierra。

对于两个:目标和项目我有以下设置Use Legacy Swift Language Version

在这里输入图像说明 在这里输入图像说明

该项目是我codapods依赖关系的荚。 我只是将项目转换为Swift 3.0,但不能编译。

您需要将Use Legacy Swift Language Version更改为NO – 这确保您的项目将使用swift 3。

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

一切都应该在这个变化后工作。

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

在我的情况下,框架开发人员在用于Podfile的代码中添加了这一行:

 config.build_settings['SWIFT_VERSION'] = '2.3' # or '3.0' 

正如你所看到的,他们默认为“2.3”,由于我运行的是3.0,所以导致了问题。 简单地删除'2.3' # or'3.0'解决这个问题。

如果上述build议不起作用,请尝试删除〜Library / Developer / Xcode / DerivedData