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

47

更新到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) 的引用,并且它的表现非常出色!

我的 podfile:

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 的 "入门指南" 示例基础上创建一个单独的项目,但没有成功。在使用框架后,我似乎无法在我的桥接头文件中引用头文件。 我可能漏掉了一些细节吗?

5个回答

106
在你的Podfile文件中,你指定了use_frameworks!。因此,你所包含的作为依赖项的 Objective-C 代码(DBSphereTagCloud)会被打包为一个框架,而不是静态库。请查看CocoaPods 0.36 - Framework and Swift Support以获取更多详细信息。因此,你不需要桥接头文件,你只需添加:
import DBSphereTagCloud

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


1
如果我的项目中混合了Objective-C和Swift文件,并且想要使用DBSphereTagCloud.h,该如何导入? - Jayesh Lathiya
对于 Swift 文件,我可以成功导入 DBSphereTagCloud.h [如您建议的导入 DBSphereTagCloud],但是对于 Objective-C 文件呢? - Jayesh Lathiya
当Ventokenfield不再工作时,我一直在苦思冥想。谢谢! - ObjectNameDisplay
1
哎呀,我在不同的项目中遇到这个问题已经好几周了。非常感谢你。 :) - SuperDuperTango

53

我遇到了问题,我的桥接头无法找到Pod库。最终我发现我必须这样做。

输入图像描述


在打开 use_frameworks 后,我遇到了一个框架的问题!在我的 bridging header 中引用的 obj-c 类中出现了“MTLModel.h 未找到”的错误。按照这个答案所说的将 Pods 添加到用户头文件搜索路径中解决了我的问题。 - pinkeerach

4

试试这个:

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

-1

对我来说...

原文

import  "<Folder/File.h>"

更改为

import  <Folder/File.h>

-1
在项目 > 构建设置 > 搜索路径 > 头文件搜索路径 中添加以下内容:"${PODS_ROOT}/Headers/Public/[包含 pod 文件的文件夹名称],对于每个安装的 pod 都要这样做。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接