我目前在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
希望这能让一些人少受几天的困扰。
其他回答
我用
链接的框架和库
将框架添加到Workspace文件夹的顶部。讨厌鬼。
在我的例子中: 该问题只发生在Xcode 12.4,而不是Xcode 13。 测试目标的一个框架在我为arm64模拟器支持重新构建框架后给出了这个错误(在XCFramework格式)。我通过更新框架搜索路径中的路径来修复它
"$(SRCROOT)/Carthage/Build/WireTesting.xcframework/ios-x86_64-simulator"
to
"$(SRCROOT)/Carthage/Build/WireTesting.xcframework/ios-arm64_x86_64-simulator"
我不知道为什么会发生这种情况,但解决你的问题的一种方法是进入你的构建设置并定义框架搜索路径到一个包含有问题的框架的文件夹。如果框架放在您的项目目录中,只需将框架搜索路径设置为$(SRCROOT)并将其设置为递归。
Another possible cause in XCode 10 can be the Supported Platforms sometimes gets changed to macOS and the Valid Architectures gets changed to i386 x86_64 for the Pods Projects. Assuming the project is for iOS, then select the Pods Project and change the Supported Platforms to iOS and the Valid Architectures to arm64 arm64e armv7 armv7s, You could do each of the Targets, however that takes longer if you have more than one Pod. Also the Swift version of frameworks in written Swift sometimes gets set to the wrong version.
实际上,通过添加到build-debug.xconfig的末尾,我更容易地解决了这个问题
#包括“. ./Pods/目标支持文件/Pods- iap /Pods- iap .debug.xcconfig"
一直到build-release.xconfig的末尾
#包括“. ./Pods/目标支持文件/Pods- iap /Pods- iap .release.xcconfig"
因为这些文件已经定义了PODS_ROOT和相关的构建变量。