桥接头文件找不到导入的 Objective-C 项目

Posted

技术标签:

【中文标题】桥接头文件找不到导入的 Objective-C 项目【英文标题】:Bridging Header File can't find an imported Objective-C project 【发布时间】:2016-01-04 17:15:50 【问题描述】:

我正在尝试使用“桥接头文件”方法将this library (SCRecorder) 导入到我的 Swift 项目中。但我真的不能让它工作。当我尝试构建项目时,出现以下错误:

error: 'SCRecorder/SCRecorder.h' file not found 
#import <SCRecorder/SCRecorder.h>

这是我的桥接头文件的内容:

#ifndef Project_Bridging_Header_h
#define Project_Bridging_Header_h

#import <SCRecorder/SCRecorder.h>

#endif

这是我的项目结构:

当然,我已经在构建设置中添加了对桥接头文件的引用。我几乎可以肯定这只是一个路径问题......但是在花了几个小时之后,我真的找不到解决方案。

谢谢。

编辑 :我没有直接导入项目,而是使用 CocoaPods 方法添加了它,我得到了一个新错误:

library not found for -lSCRecorder

【问题讨论】:

SCRecorder 项目是否设置为将其头文件导出到该位置?如果没有,则不会找到。 @Putz1103 老实说,我真的不知道。我该如何检查? 你的框架(根据你的导入声明)应该命名为SCRecorder.Framework,而不是SCRecorderFramework @l'L'l 那么我应该编辑一些东西吗? 也许尝试重命名目录SCRecorderFramework(假设它是框架)。 【参考方案1】:

好的。我想到了。我只是在安装 pod 后没有使用 *.xcworkspace 项目……用这个文件打开我的项目后,一切正常,正如预期的那样。

感谢您的帮助,尤其是 @kaizoku 建议我使用此文件。

【讨论】:

【参考方案2】:

您应该尝试使用“cocoapods”安装库 手动导入项目时可能出现问题。

Here 是关于如何在应用程序中安装 Cocospods 和初始化 podfile 的教程。

然后你可以在 Podfile 中添加pod 'SCRecorder' 并返回终端输入pod install。 这将为 SCRecorder 安装所有依赖库。

最后,去尝试运行构建。它应该工作。 为了安全起见,请保留此版本的备份。 祝你好运:)

【讨论】:

感谢您的建议。我现在已经这样做了,但是我收到了一个新错误:“找不到 -lPods 的库”。 你需要打开你的project.xcworkspace 我希望这就是你在做什么。 xcodeproj 文件会给你错误【参考方案3】:

我对 pod 也有类似的问题。基本上试图运行我的 UI 测试,Xcode 抱怨缺少 pod。解决方案是:

    转到项目文件(主要不是目标) 点击“信息”标签(最左侧) 为 UI 测试目标设置正确的 pod 配置(“部署目标”下的“配置”部分)

工作!

更多信息:https://github.com/CocoaPods/CocoaPods/issues/2695

【讨论】:

以上是关于桥接头文件找不到导入的 Objective-C 项目的主要内容,如果未能解决你的问题,请参考以下文章

找不到 CocoaPods 桥接头文件

无法使用桥接头将 Objective-C 文件导入 Swift 项目

无法使用桥接头将 Objective-C 文件导入 Swift 项目

在通过桥接头导入的 Objective-C 文件中使用“Availability.h”

在“发布”构建配置中看不到在桥接头中导入的头,但在“调试”构建配置中可见

Firebase 无法导入桥接头