Lan*_*tig 16 xcode objective-c ios stripe-payments xcode7
我有一个依赖Stripe iOS SDK,项目A 的iOS组件.我在Xcode中包含了项目A中的Stripe SDK,它编译得很好.
但是,我正在Xcode中构建另一个项目,它依赖于这个组件,项目B.我将项目A添加到项目B的库中.项目A依赖于项目B,但不直接依赖于Stripe SDK.
现在,每当我尝试编译Project B时,都会收到此错误:
ld: framework not found Stripe for architecture x86_64
这一行(在项目A内)似乎触发了错误:
#import <Stripe/Stripe.h>
Xcode可以轻松找到Stripe.h
.我也尝试将Stripe SDK直接添加到Project B中.我已经对所有目标(Stripe.framework
列出)进行了两次和三次检查Build Phases - > Link Binary With Libraries部分.
我手动添加了Stripe框架,所以我也尝试用Cocoapods添加它,但这也没有用.
请帮忙!
这是项目B的项目结构("示例"),项目A("RCTFBLogin")位于其下方.
这是完整的错误:
我正在使用Xcode 7.2和最新版本的Stripe SDK(6.0.0).相同的Stripe框架代码在另一个项目中工作正常.
谢谢.
更新:我$(SRCROOT)/../..
在项目B目标的构建设置 - >"搜索路径"下添加了" "(因为项目B在项目A内部生活了两个文件夹)到"框架搜索路径",并且它开始成功编译.但是,我现在运行时遇到此错误:
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
Run Code Online (Sandbox Code Playgroud)
Ada*_*hns 13
在运行我的测试目标时,我在另一个框架中看到了同样的问题.我不得不将框架添加到我的测试目标(不仅是我的正常目标)下Build Phases > Link Binary With Libraries
.
迦太基有关于我看到的问题的更多信息:https://github.com/carthage/carthage#adding-frameworks-to-unit-tests-or-a-framework
Hon*_*ney 10
这就是我的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
Run Code Online (Sandbox Code Playgroud)
那么我把它添加到podfile:
target ‘ProjectTests’ do
pod ‘Nimble’, ‘~> 4.0.0’
pod ’Quick’
end
Run Code Online (Sandbox Code Playgroud)
我还需要做的是:
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
Run Code Online (Sandbox Code Playgroud)
因此,可能的原因是在podfile中没有正确添加它们,只需确保将框架添加到必要的目标中即可.
为了实现这个目的,我必须做两件事:
将"$(SRCROOT)/../ .."(因为项目B在项目A内部生成两个文件夹)添加到"项目B"目标的"构建设置" - >"搜索路径"下的"框架搜索路径".
将Stripe SDK添加到Project B的框架中.第二步特别让我感到惊讶,因为Project B并不直接依赖Stripe.
归档时间: |
|
查看次数: |
18347 次 |
最近记录: |