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中没有正确地添加它们,只要确保框架被添加到你的框架中。
我不得不做两件事情来实现这个工作:
-
将“$(SRCROOT)/../…”(因为项目B在项目A中深入两个文件夹)添加到项目B目标的“生成设置” – >“searchpath”下的“框架searchpath”。
-
将条纹SDK也添加到项目B的框架中。 这个第二步特别让我吃惊,因为B项目不直接依赖Stripe。