将 CocoaPods 更新到 0.36.x 及以上版本后如何引用 Bridging-Header.h 中的头文件?

Posted

技术标签:

【中文标题】将 CocoaPods 更新到 0.36.x 及以上版本后如何引用 Bridging-Header.h 中的头文件?【英文标题】:How to reference header files in Bridging-Header.h after updating CocoaPods to 0.36.x and above? 【发布时间】:2015-03-16 14:58:27 【问题描述】:

更新到 CocoaPods 0.36.x 后,我无法将导入添加到我的 Bridging-Header.h 文件中。我得到“找不到 DBSphereView.h 文件”。

该文件确实存在于:

"Pods/DBSphereTagCloud/DBSphereView.h"
"Headers/public/DBSphereTagCloud/DBSphereView.h"
"Headers/private/DBSphereTagCloud/DBSphereView.h"

我的桥文件:

#ifndef Loan_Bridging_Header_h
#define Loan_Bridging_Header_h
#import "DBSphereView.h"
#endif

我能够使用框架。我参考了一个著名的框架 (Alamofire),它的效果很好!

我的播客文件:

source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
pod 'DBSphereTagCloud', '~> 1.0'
pod 'Alamofire', '~> 1.1'

更新前,导入头文件没有问题。

将 CocoaPods 更新到 0.36.x 后,如何在 Bridging-Header.h 中引用头文件?

谢谢!

编辑:

我还尝试根据 cocoapods.org 的示例“Get Started”创建一个单独的项目,但没有成功。使用框架后,我似乎无法在桥接头文件中引用头文件。我一定是遗漏了一些细节?

【问题讨论】:

【参考方案1】:

在您的Podfile 中,您指定了use_frameworks!

因此,您作为依赖项 (DBSphereTagCloud) 包含的 Objective-C 代码被打包为框架,而不是静态库。请参阅CocoaPods 0.36 - Framework and Swift Support 了解更多详情。

因此,您不需要桥接头文件。你添加就够了:

import DBSphereTagCloud

在所有需要该模块的 Swift 文件中。

【讨论】:

如果我的项目中混合了 Objective-C 和 swift 文件并想使用 DBSphereTagCloud.h,如何导入? 对于 swift 文件,我可以成功导入 DBSphereTagCloud.h [正如您建议的导入 DBSphereTagCloud ] 但对于 Objective-C 文件? 当 Ventokenfield 不再工作时,我正在为此挠头。谢谢! 天啊,我在随机项目中遇到这个问题已经好几个星期了。非常感谢。 :)【参考方案2】:

我遇到了这个问题。我的桥接头没有找到 pod 库。我最终发现我必须这样做。

【讨论】:

我在打开 use_frameworks 后遇到了框架问题!我在桥接头中引用的 obj-c 类中收到错误“MTLModel.h not found”。正如这个答案所说,将 Pod 添加到用户标头搜索路径中,解决了我的问题。【参考方案3】:

试试这个:

import  <DBSphereTagCloud/DBSphereView.h>
import  <DBSphereTagCloud/DBSphereView.h>

【讨论】:

【参考方案4】:

对我来说……

原创

import  "<Folder/File.h>"

改成

import  <Folder/File.h>

【讨论】:

【参考方案5】:

在项目中 > 构建设置 > 搜索路径 > 标题搜索路径

添加:

"$PODS_ROOT/Headers/Public/[pod 文件所在文件夹的名称]"

为您安装的每个 pod 执行此操作

【讨论】:

以上是关于将 CocoaPods 更新到 0.36.x 及以上版本后如何引用 Bridging-Header.h 中的头文件?的主要内容,如果未能解决你的问题,请参考以下文章

无法将 cocoapods 从 1.0.0 升级到 1.0.1

Cocoapods 0.39.0 更新错误

Firebase Podfile - CocoaPods 无法更新

如何使用 CocoaPods 将智能生活 App SDK iOS 版快速集成到项目中

更新到 1.0.0 后 cocoapods link_with 出错

iOS-Cocoapods更新不及时