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

没有这样的模块

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

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

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


当前回答

大多数其他答案都是针对CocoaPods或迦太基用户的。如果你不使用这些,但只是想在你的项目中删除一个框架并链接它,它将需要在框架搜索路径中。

系统框架已经在搜索路径(即/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/ sdk/ iPhoneOS${version}.sdk/ system /Library/ frameworks /)。如果您试图使用的文件不在此路径中,则需要将它们的路径添加到Build Settings中的FRAMEWORK_SEARCH_PATHS中。


为什么XCode不知道在哪里找到它,即使你左边面板上的框架在右边面板的标识和类型中列出了一个位置和完整的路径?那我不知道。

其他回答

我不太确定为什么Martin R在评论中对这个问题的回答被如此忽视:

确保您尝试简单地跳过导入框架,因为它已经与桥接头一起添加了。

希望这能有所帮助

如果你使用CocoaPods,试着注释掉(#)新的pod,运行pod install,把它带回来,然后再次安装pod。有时somewhy pod脚本不能产生正确的依赖关系(或者与运行xCode冲突?)所以它有时确实有帮助

确保Scheme中的“在构建中查找隐式依赖项”选项是打开的!

我得到这个问题是因为我在podfile中设置了错误的目标(项目本身而不是UITests部分)。

在我的例子中,应用IPHONEOS_DEPLOYMENT_TARGET被设置为9.3,而在我新创建的框架中,它被设置为10.2

隐式依赖解析器忽略了我的新框架,因为目标平台的要求高于应用程序的要求。

在调整框架iOS部署目标以匹配我的应用程序部署目标后,框架编译并链接成功。