我目前在Swift编码,我有一个错误:
没有这样的模块
但我不明白,因为这个模块在我的项目中,在“链接框架和库”和“嵌入式二进制文件”中声明。
框架是在Objective-C中,所以我为它写了一个桥标头。
请问,如何让Xcode识别框架?
我目前在Swift编码,我有一个错误:
没有这样的模块
但我不明白,因为这个模块在我的项目中,在“链接框架和库”和“嵌入式二进制文件”中声明。
框架是在Objective-C中,所以我为它写了一个桥标头。
请问,如何让Xcode识别框架?
当前回答
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
希望这能让一些人少受几天的困扰。
其他回答
实际上,通过添加到build-debug.xconfig的末尾,我更容易地解决了这个问题
#包括“. ./Pods/目标支持文件/Pods- iap /Pods- iap .debug.xcconfig"
一直到build-release.xconfig的末尾
#包括“. ./Pods/目标支持文件/Pods- iap /Pods- iap .release.xcconfig"
因为这些文件已经定义了PODS_ROOT和相关的构建变量。
在我的情况下,项目上的swift 4库没有编译,所以不可能找到它们并导入。 解决方案是将cocoapods库的编译版本设置为swift 3.2
当“查找隐式依赖项”选项未选中时,可能会发生此错误。转到编辑方案->构建。
然后勾选这个选项。
以我为例,在多次尝试找出导入框架时哪里做错了之后,我最终发现问题出在框架本身。如果你不是从一个可信的来源获得你的框架,你应该检查框架并确保它包含一个模块的Modules文件夹。其中的Modulemap文件。如果模块。modulemap不存在,你会得到“No such module 'MyFramework'”错误。
如果Modules文件夹缺少“MyFramework.”然后框架就会被找到,但是Xcode不会知道它的内容,所以你会得到不同的错误。
我在开发定制Pod时遇到了这个问题。发现我只需要在我的Procfile中指定依赖项:
Pod::Spec.new do |s|
# ... other declarations
s.dependency 'Alamofire', '~> 4.3'
end