我目前在Swift编码,我有一个错误:
没有这样的模块
但我不明白,因为这个模块在我的项目中,在“链接框架和库”和“嵌入式二进制文件”中声明。
框架是在Objective-C中,所以我为它写了一个桥标头。
请问,如何让Xcode识别框架?
我目前在Swift编码,我有一个错误:
没有这样的模块
但我不明白,因为这个模块在我的项目中,在“链接框架和库”和“嵌入式二进制文件”中声明。
框架是在Objective-C中,所以我为它写了一个桥标头。
请问,如何让Xcode识别框架?
当前回答
No such module编译错误
这是编译时错误。你可以在很多情况下得到它:
打开的是.xcodeproj而不是。xcworkspace 模块。modulemap or .swiftmodule[关于]
Objective-C库/框架目标
确保生成的二进制文件包含模块。modulemap文件和它的头文件位于Build Phases -> headers部分
框架搜索路径
Consumer ->框架
如果你试图在没有设置框架搜索路径(消费者)的情况下构建应用程序。在设置框架搜索路径指向框架资源后,Xcode将成功构建项目。然而,当你在模拟器中运行应用程序时,有一个崩溃的原因:Image not foundabout
它可以是一个绝对路径或相对路径,如$(SRCROOT)或$(SRCROOT)/..对于工作空间
导入路径
Swift消费者-> Swift静态库
导入路径(消费者)应该指向.swiftmodule
寻找隐式依赖关系
当您有一个隐式依赖项,但“查找隐式依赖项”已关闭时
CocoaPods
检查目标中是否存在此依赖项
pod deintegrate
pod install
CocoaPods UI测试包
对于应用程序目标,使用额外的依赖CocoaPods。要解决它使用继承![关于]在Podfile
(递归路径)
其他回答
在我的情况下,我尝试了上面的每一个建议仍然没有工作。 我只是复制文件的内容,显示错误没有导入的东西,并将其粘贴到另一个文件相同的导入和注释错误文件。 再次运行项目,它工作,然后我删除原来的错误文件,并创建一个同名的文件,并使其内容再次使用相同的导入。 我认为在我的情况下,我只是想办法让它能够链接那些导入一次,它应该是好的。
在我的例子中: 该问题只发生在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"
对我来说,这发生在RxSwift上,问题是我在Podfile中将其修复为3.0.0。移除版本限制并更新pods将其升级到3.1.0,从而修复了它。
如果是周五下午或凌晨1点之后:
打开xcodeproj而不是xcworkspace将导致如下错误…
我用
链接的框架和库
将框架添加到Workspace文件夹的顶部。讨厌鬼。