ld:框架未find架构x86_64的条带

我有一个依赖于Stripe iOS SDK ,Project A的iOS组件。我在Xcode中包含了项目A中的Stripe SDK,它编译得很好。

但是,我正在Xcode中build立另一个项目,依赖于这个组件,项目B.我把项目A添加到项目B的库。 项目A依赖于项目B,但不直接依赖于Stripe SDK。

现在,每当我尝试编译项目B,我得到这个错误:

ld: framework not found Stripe for architecture x86_64

这行(在项目A中)似乎触发了这个错误:

#import <Stripe/Stripe.h>

Xcode没有findStripe.h麻烦。 我试图直接添加到项目B的条纹SDK。 我已经双击和三重检查了所有目标( Stripe.framework被列出)的Stripe.framework – > Link Binary With Libraries部分。

我手动添加了Stripe框架,所以我也试着用Cocoapods添加它,但是这也不起作用。

请帮忙!

以下是项目B(“示例”)的项目结构,下面是项目A(“RCTFBLogin”)。

在这里输入图像说明

这是完整的错误:

在这里输入图像说明

我正在使用Xcode 7.2和最新版本的Stripe SDK(6.0.0)。 相同的Stripe框架代码在另一个项目中工作正常。

谢谢。

更新:我添加了“ $(SRCROOT)/../.. ”(因为项目B在项目A中深入两个文件夹)到项目B目标的生成设置 – >“searchpath”下的“框架searchpath”开始编译成功。 但是,我现在运行时出现这个错误:

 ld: warning: Auto-Linking supplied '/Users/rettig/wip/react-native-facebook-login.2/Stripe.framework/Stripe', framework linker option at /Users/rettig/wip/react-native-facebook-login.2/Stripe.framework/Stripe is not a dylib Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_Stripe", referenced from: objc-class-ref in libRCTFBLogin.a(RCTFBLogin.o) ld: symbol(s) not found for architecture x86_64 

在运行我的testing目标时,我看到与另一个框架相同的问题。 我不得不将框架添加到我的testing目标 (不仅是我的正常目标)下Build Phases > Link Binary With Libraries部分。

迦太基有关于我看到的问题的更多信息: https : //github.com/carthage/carthage#adding-frameworks-to-unit-tests-or-a-framework

所以这是我的podfile的样子:

 def shared_pods pod 'GoogleMaps', '~> 1.13.0' pod 'SwiftyJSON', '~> 2.3.2' pod 'Alamofire', '~> 3.2.1' pod 'MGSwipeTableCell' end target 'projectName' do shared_pods end 

那么我把这个添加到podfile中:

 target 'ProjectTests' do pod 'Nimble', '~> 4.0.0' pod 'Quick' end 

我还需要做的是:

 target 'ProjectTests' do shared_pods // I needed to add this line as well. Since this line included the needed 'MGSwipeTableCell' framework pod 'Nimble', '~> 4.0.0' pod 'Quick' end 

所以一个可能的原因是你的podfile中没有正确地添加它们,只要确保框架被添加到你的框架中。

我不得不做两件事情来实现这个工作:

  1. 将“$(SRCROOT)/../…”(因为项目B在项目A中深入两个文件夹)添加到项目B目标的“生成设置” – >“searchpath”下的“框架searchpath”。

  2. 将条纹SDK也添加到项目B的框架中。 这个第二步特别让我吃惊,因为B项目不直接依赖Stripe。