为啥我的简单目标 c 桥接头找不到文件“BraintreeCore.h”?
Posted
技术标签:
【中文标题】为啥我的简单目标 c 桥接头找不到文件“BraintreeCore.h”?【英文标题】:Why is my simple objective c bridging header failing to find the file "BraintreeCore.h"?为什么我的简单目标 c 桥接头找不到文件“BraintreeCore.h”? 【发布时间】:2016-07-28 00:04:47 【问题描述】:这真的让我很沮丧。我之前已经将 Braintree 库集成到几个 ios 项目中,以便在 swift 中使用并且从来没有真正遇到过问题,但目前我无法让它工作。
我一遍又一遍地遵循/重复这里的说明:
https://developers.braintreepayments.com/start/hello-client/ios/v4
具体来说,我将 pod 'Braintree' 放入我的 Podfile 中,运行 pod install 和 pod update,并验证 Braintree 库现在出现在 Pods 目录中。
我现在也重新制作了 3 次桥接头,小心为我的应用设置目标。我还一遍又一遍地验证我已将我的构建设置中的目标 c 桥接头设置为正确的文件,并让它成功地为其他目标 c 文件创建桥接头。遗憾的是,尽管以下几行在桥接头中不起作用:
#import "BraintreeCore.h"
#import "BraintreeUI.h"
它们都给出了相同类型的编译错误,说找不到 BraintreeCore.h 文件。
我能够在没有出现错误的情况下执行以下操作:
#import "Pods/Braintree/BraintreeCore/Public/BraintreeCore.h"
但是当我尝试对 BraintreeUI.h 做同样的事情时:
#import "Pods/Braintree/BraintreeUI/Public/BraintreeUI.h"
它将我链接到 BraintreeUI.h 文件并告诉我在 BraintreeUI.h 文件中找不到关于此行的“BraintreeCore/BraintreeCore.h”文件:
#import <BraintreeCore/BraintreeCore.h>
我做错了什么??这应该很简单,但它已经激怒了我超过 12 个小时。
【问题讨论】:
【参考方案1】:全面披露:我在 Braintree 工作,负责 iOS SDK。
您的桥接头不需要您指定伞形头文件的路径。这可能表明您的 Xcode 项目的构建配置已设置为 Xcode 的构建系统无法找到头文件。在一个典型的项目中,你应该可以做到这一点。
我的建议是仔细查看项目 > 构建设置 > 搜索路径设置。特别是,Header Search Paths 设置应包含一个如下所示的条目:
"$PODS_ROOT/Headers/Public/Braintree"
如果不是,我怀疑 CocoaPods 与您的 Xcode 项目不兼容。您可能想尝试去整合和重新整合。使用 CocoaPods 1.0,您应该能够执行 pod deintegrate
,确保您的 Pods/
文件夹已删除,然后运行 pod install
。最坏的情况是,您可能只想从一个全新的 Xcode 项目开始,然后拖过旧的源文件(尽管这可能会很痛苦)。
【讨论】:
【参考方案2】:你找到解决方案了吗,HelloCoding?面临同样的问题...
就我而言,我注意到 Braintree 文档说“如果您的应用是用 Swift 编写的,但您的 CocoaPods 集成不使用动态框架,您可以在桥接头中导入 Braintree”。
所以我从桥文件中删除了导入,并包含了一个“use_frameworks!”而是在我的 Podfile 中进行说明。
我不知道这是否是解决问题的认可方法,但它似乎对我有用。
【讨论】:
以上是关于为啥我的简单目标 c 桥接头找不到文件“BraintreeCore.h”?的主要内容,如果未能解决你的问题,请参考以下文章