我目前在Swift编码,我有一个错误:

没有这样的模块

但我不明白,因为这个模块在我的项目中,在“链接框架和库”和“嵌入式二进制文件”中声明。

框架是在Objective-C中,所以我为它写了一个桥标头。

请问,如何让Xcode识别框架?


当前回答

在我的情况下,项目上的swift 4库没有编译,所以不可能找到它们并导入。 解决方案是将cocoapods库的编译版本设置为swift 3.2

其他回答

在我的例子中,我只需要重新加载项目。我使用命令行克隆我的项目,但它没有正确安装子模块。为了补救,我通过XCode克隆了项目,一切正常。只是要确保先备份所有更改。

检查你是否使用最新版本的xcode。(如果没有更新到您设备支持的最新版本)。 用sudo gem Install cocoapods安装cocoapods 运行吊舱设置

我可以确认以上步骤解决了我的错误:-)

我在使用Cocoapods和Swift时也遇到了同样的问题。我没有注意到Podfile中的以下行:

# Uncomment this line if you're using Swift
# use_frameworks!

所以,我所要做的就是把它改成:

# Uncomment this line if you're using Swift
use_frameworks!

...啊,它起作用了:)

假设框架真的在那里,在道路上,等等……删除~/Library/Developer/Xcode/DerivedData/ModuleCache目录(清理项目并删除项目特定的派生数据)。

在执行标准清理时,不会重新构建ModuleCache目录。

如果你使用迦太基,建筑设置中的框架通常是不变的

$ (PROJECT_DIR) /迦太基/构建/ iOS

如果你运行carthage update—platform ios—no- Build(为了节省时间),Build文件夹中的文件将不会被重新创建,那么这些模块将无法用于XCode。

以我为例,我运行了carthage update平台ios,然后我的问题就解决了。