2016-07-28 35 views
2

这真让人沮丧。我已经将Braintree库集成到了几个iOS项目中,然后才能在swift中使用,并且从未真正遇到过问题,但目前我无法使其工作。为什么我的简单目标桥接头无法找到文件“BraintreeCore.h”?

我跟随/重复此份说明,一遍又一遍:

https://developers.braintreepayments.com/start/hello-client/ios/v4

具体来说,我把荚“布伦特里”在我Podfile,跑吊舱安装和荚更新,并验证了布伦特里库现在出现在Pods目录中。

我已经重新做了我的桥头3次,现在也小心地将目标设置到我的应用程序。我也一遍又一遍地验证,我已经将我的Build Settings中的目标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个小时令我感到愤怒。

回答

3

完全披露:我在iOS SDK上的Braintree工作。

您的桥接头不需要您指定伞头文件的路径。这可能表明您的Xcode项目的构建配置已设置,以便Xcode的构建系统无法找到头文件。在一个典型的项目中,你应该能够做到这一点没有问题。

我的建议是采取一个仔细看项目>构建设置>搜索路径设置。特别是,头搜索路径设置应该包含一项内容,看起来像这样:

"${PODS_ROOT}/Headers/Public/Braintree"

如果没有,我怀疑的CocoaPods不打尼斯Xcode项目。你可能想尝试去整合和重新整合。使用CocoaPods 1.0,您应该能够执行pod deintegrate,确保您的Pods/文件夹被删除,并运行pod install。最糟糕的情况是,你可能只想从一个全新的Xcode项目开始,并拖拽旧的源文件(尽管这可能是一个很大的麻烦)。

0

您是否找到解决方案HelloCoding?面对同样的问题...

就我而言,我注意到Braintree文档中提到“如果您的应用程序是用Swift编写的,但您的CocoaPods集成不使用动态框架,则可以在桥接标题中导入Braintree”。

所以我删除了从桥文件导入,并包括一个“use_frameworks!”指令在我的Podfile中。

我不知道这是否是批准的方式来解决问题,但它似乎为我工作。

相关问题