然而,我已经使用同样的Xcode重新编译了框架,但仍然出现这个错误。
- 基础SDK为iOS 11.1,两者相同
- Swift语言版本为Swift 4.0,两者相同
- 没有使用Pods/Carthage
希望有人能知道原因。
然而,我已经使用同样的Xcode重新编译了框架,但仍然出现这个错误。
希望有人能知道原因。
更新:
对于Xcode的发布版本:
当使用早期版本的Xcode工具构建的框架打开一个项目时,会出现这个错误(以及涉及Swift 4.1、4.2等的类似错误)。
要解决这个问题,需要使用Carthage(carthage update --platform iOS
)、Cocoapods(pod update
或pod install
)或手动更新和重建框架,使用新的更新后的Xcode工具。当您更新Xcode时,工具应该会自动更新,但如果没有,您可以按照下面原始答案中概述的步骤进行操作。
您可能还需要清除项目cmd + shift + k
和可能的构建文件夹cmd + option + shift + k
,以使Xcode不使用缓存的框架构建。
在某些情况下,您可能还需要删除派生数据文件夹(通过进入Xcode首选项->位置->派生数据文件夹轻松找到感谢Stunner)。
对于Xcode的beta版本:
请参见下面的原始答案,然后按上述步骤操作。
原始答案:
您可能仍将xcodebuild工具设置为Xcode 9.0,该版本使用Swift 4.0构建,并与Xcode 9.1 beta的Swift 4.0.1不兼容。
使用以下命令在终端中进行检查:
xcodebuild -version
或者只需进入Xcode首选项->位置,检查/更改命令行工具为Xcode 9.1。然后您应该就可以了。
我的问题是由于一个外部框架没有为Swift 4.0.2编译。我通过Carthage添加了这个文件,所以运行:
carthage update --platform iOS
然后清理项目 cmd + shift + k
和构建文件夹 cmd + option + shift + k
,并删除派生数据文件夹(仅将其移动到垃圾桶也可以),这对我有用。
Xcode工具链包括编译器、lldb和其他相关工具,为在特定版本的Swift中开发提供一致的开发体验。
打开Xcode首选项,导航到组件>工具链,并选择已安装的Swift工具链。
这将允许您编译和运行该应用程序。
Module compiled with Swift 5.0.1 cannot be imported by the Swift 5.1 compiler
/Pods
目录并运行 pod install
来解决它。pod update
或更新 Carthage(无论你使用哪一个),然后构建项目。theFramework.framework
复制粘贴到您的项目中,并确保选择“必要时复制项目”。再次构建项目,应该可以正常工作。我用几个基本步骤解决了这个问题
关闭 Xcode
pod deintegrate
打开 Xcode 工作区
Command + Shift + K
- 清理Command + B
- 构建