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

没有这样的模块

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

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

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


当前回答

对我有效的是另一个问题的解决方案。关闭Xcode,重新打开项目作为工作空间。转到项目文件夹并打开.xcodeworkspace文件。 一旦你打开工作区(而不是项目),Pods应该作为顶级项目出现在project Navigator中。

其他回答

在我的情况下,我尝试了上面的每一个建议仍然没有工作。 我只是复制文件的内容,显示错误没有导入的东西,并将其粘贴到另一个文件相同的导入和注释错误文件。 再次运行项目,它工作,然后我删除原来的错误文件,并创建一个同名的文件,并使其内容再次使用相同的导入。 我认为在我的情况下,我只是想办法让它能够链接那些导入一次,它应该是好的。

我赢得了“没有这样的模块”错误的最愚蠢原因奖。在我的例子中,我手工构建了包含的框架,并将其复制到我的项目目录中。我的框架搜索路径设置正确,框架也被正确地添加到项目中。

当我归档我正在构建的框架时,我使用“Show in Finder”将我带到派生数据中的发布文件夹。但是我没有注意到这个文件夹只包含框架的别名,而不是框架本身。原始框架仍然在我的派生数据目录中,所以后来当我清除派生数据时,框架被删除了,但我的项目不知道这一点。

重新归档框架,遵循别名到实际框架,并将其复制到我的项目目录中,这是可行的。

几天前我也遇到了同样的错误。下面是我解决这个问题的方法:

错误是“模块未找到”

Create Podfile in your root project directory Install cocoapods (a dependency manager for Swift and iOS projects) Run pod install Go to Project Build Settings: Find Objective-c bridging Header under Swift compiler - Code Generation (If you don't find Swift compiler here, probably add a new Swift file to the project) Drag and drop the library header file from left side to bridging header (see image attached) Create a new bridging header file: e.g TestProject-Bridging-Header.h and put under Swift Compiler → Objective-C Generated Interface Header Name (ref, see the image above) In TestProject-Bridging-Header.h file, write #import "Mixpanel/Mixpanel.h" In your Swift file the code should be: Import Mixpanel (i.e name of library)

这是所有。

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

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

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

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

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

我用

链接的框架和库

将框架添加到Workspace文件夹的顶部。讨厌鬼。