桥接头文件找不到导入的 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 项目的主要内容,如果未能解决你的问题,请参考以下文章
无法使用桥接头将 Objective-C 文件导入 Swift 项目
无法使用桥接头将 Objective-C 文件导入 Swift 项目
在通过桥接头导入的 Objective-C 文件中使用“Availability.h”