使用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
并删除派生的数据文件夹(仅将其移动到垃圾箱也是如此)为我工作。