Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
430 views
in Technique[技术] by (71.8m points)

ios - ld: framework not found Stripe for architecture x86_64

I have an iOS component which relies on the Stripe iOS SDK, Project A. I included the Stripe SDK in Project A in Xcode and it compiles fine.

However, I'm building another project in Xcode which relies on this component, Project B. I added Project A to Project B's libraries. Project A relies on project B but does not rely directly on the Stripe SDK.

Now, whenever I try to compile Project B, I get this error:

ld: framework not found Stripe for architecture x86_64

This line (inside Project A) seems to trigger the error:

#import <Stripe/Stripe.h>

Xcode has no trouble finding Stripe.h. I tried adding the Stripe SDK directly to Project B as well. I've double and triple-checked the Build Phases -> Link Binary With Libraries section for all targets (Stripe.framework is listed).

I added the Stripe framework manually, so then I also tried adding it with Cocoapods instead, but that also didn't work.

Please help!

Here's the project structure for Project B ("example"), with Project A ("RCTFBLogin") below it.

enter image description here

Here's the full error:

enter image description here

I'm using Xcode 7.2 and the most recent version of the Stripe SDK (6.0.0). The same Stripe framework code works fine in another project.

Thanks.

Update: I added "$(SRCROOT)/../.." (since Project B lives two folders deep inside Project A) to "Framework Search Paths" under Build Settings -> "Search Paths" for the Project B target and it began compiling successfully. However, I now get this error when running:

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
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I was seeing this same issue with another framework while running my test target. I had to add the framework to my test target (not only my normal target) under Build Phases > Link Binary With Libraries section.

Carthage has more info about the issue I saw: https://github.com/carthage/carthage#adding-frameworks-to-unit-tests-or-a-framework


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...