使用Swift 4.0编译的模块不能在Swift 4.0.1中导入

不过,我已经使用相同的Xcode重新编译框架,它仍然给我这个错误。

  • 适用于两者的基本SDK iOS 11.1
  • 两个Swift语言版本Swift 4.0
  • 不使用豆荚/迦太基

我希望有人知道

更新:

随着Xcode 9.1的正式发布,我应该澄清一下:在使用使用Xcode 9.0工具构build的框架的9.1中打开项目时,会发生此错误(以及涉及Swift 4.0.2的类似错误等)。

为了解决这个问题,使用新的更新的Xcode 9.1工具来更新和重build你的框架(使用carthage,cocoapods或手动)。 当您更新Xcode时,这些工具应该会自动更新,但是如果没有,您可以按照原始答案中的下列步骤进行操作。

原始答案:

您可能仍然将xcodebuild工具设置为Xcode 9.0,它使用Swift 4.0构build,与Xcode 9.1 beta的Swift 4.0.1不兼容。

使用以下命令检查terminal:

xcodebuild -version 

或者进入Xcode首选项 – >位置,并检查/更改命令行工具到Xcode 9.1。 你应该设置。

我的问题是由于没有为Swift 4.0.2编译的外部框架。 我已经通过Carthage添加了这个文件,所以运行:

 carthage update --platform iOS 

然后清理项目cmd + shift + k和构build文件夹cmd + option + shift + k并删除派生的数据文件夹(仅将其移动到垃圾箱也是如此)为我工作。