我目前在Swift编码,我有一个错误:
没有这样的模块
但我不明白,因为这个模块在我的项目中,在“链接框架和库”和“嵌入式二进制文件”中声明。
框架是在Objective-C中,所以我为它写了一个桥标头。
请问,如何让Xcode识别框架?
我目前在Swift编码,我有一个错误:
没有这样的模块
但我不明白,因为这个模块在我的项目中,在“链接框架和库”和“嵌入式二进制文件”中声明。
框架是在Objective-C中,所以我为它写了一个桥标头。
请问,如何让Xcode识别框架?
当前回答
此错误也可能由框架缺少模块映射引起。如果您试图导入的框架是您自己的框架,请检查框架本身的编译器警告。在我的情况下,我的框架正在构建和到位,但有一个构建警告:
警告:没有为目标'MyFramework'找到伞头,模块映射将不会生成
通过解决这个警告(与框架头不匹配模块名有关),我能够导入框架。
其他回答
确保Scheme中的“在构建中查找隐式依赖项”选项是打开的!
TL;DR:检查Podfile中特定于目标的shared_pods
在绞尽脑汁尝试了上周贴在这里的每一个答案之后,我终于找到了一个解决方案。
我有两个独立的目标——一个用于发布,一个用于开发。开发目标是在发布目标之后很久才创建的,这导致我忘记了该目标的一些设置步骤。
我能够使用我的发布目标正确地编译我的项目,但是我的开发目标遇到了一个问题。
在第20次查看我的Podfile后,我注意到在我的shared_pods定义下只有以下内容:
target 'Release' do
shared_pods
end
我需要做的是将我的第二个目标添加到我的Podfile中,这就解决了这个问题:
target 'Release' do
shared_pods
end
target 'Development' do
shared_pods
end
希望这能让一些人少受几天的困扰。
对我来说,编辑方案->运行,并将调试配置从发布更改为调试解决问题。
我赢得了“没有这样的模块”错误的最愚蠢原因奖。在我的例子中,我手工构建了包含的框架,并将其复制到我的项目目录中。我的框架搜索路径设置正确,框架也被正确地添加到项目中。
当我归档我正在构建的框架时,我使用“Show in Finder”将我带到派生数据中的发布文件夹。但是我没有注意到这个文件夹只包含框架的别名,而不是框架本身。原始框架仍然在我的派生数据目录中,所以后来当我清除派生数据时,框架被删除了,但我的项目不知道这一点。
重新归档框架,遵循别名到实际框架,并将其复制到我的项目目录中,这是可行的。
对我来说,问题在于项目文件缺少这个文件“coursesX.xcworkspace”
当我添加它并重新打开项目时,一切都工作得很好