这真的让我很沮丧。我之前已经将 Braintree 库集成到了几个 iOS 项目中,以便在 swift 中使用,并且从未真正遇到过问题,但目前我无法让它工作。
我一遍又一遍地遵循/重复此处的说明:
https://developers.braintreepayments.com/start/hello-client/ios/v4
具体来说,我将 pod 'Braintree' 放入我的 Podfile 中,运行 pod 安装和 pod 更新,并验证 Braintree 库现在出现在 Pods 目录中。
我现在也重新制作了 3 次桥接头,小心地将目标设置为我的应用程序。我还一遍又一遍地验证,我已将“build设置”中的 Objective C 桥接 header 设置为正确的文件,并成功地为其他 Objective C 文件创建桥接 header 。遗憾的是,以下几行在桥接 header 中不起作用:
#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 个多小时了。
最佳答案
全面披露:我在 Braintree 从事 iOS SDK 工作。
您的桥接 header 不需要您指定伞形 header 文件的路径。这可能表明您的 Xcode 项目的构建配置已设置为 Xcode 的构建系统无法找到头文件。在典型的项目中,您应该能够毫无问题地做到这一点。
我的建议是仔细查看项目> build设置> 搜索路径设置。特别是,标题搜索路径设置应包含一个如下所示的条目:
“${PODS_ROOT}/Headers/Public/Braintree”
如果没有,我怀疑 CocoaPods 与您的 Xcode 项目配合得不好。您可能想尝试取消集成并重新集成。使用 CocoaPods 1.0,您应该能够执行 pod deintegrate
,确保您的 Pods/
文件夹已删除,然后运行 pod install
。最坏的情况可能是,您可能只想从一个全新的 Xcode 项目开始,然后拖动旧的源文件(尽管这可能会很痛苦)。
关于objective-c - 为什么我的简单 objective-c 桥接头无法找到文件 "BraintreeCore.h"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38625105/