将 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
Firebase Podfile - CocoaPods 无法更新
如何使用 CocoaPods 将智能生活 App SDK iOS 版快速集成到项目中