我已经使用cocoapod成功安装了braintree ios sdk并且编译得很好。 但是,当我在appdelegate.m文件中使用initVTClient时。我正在编译错误:
Undefined symbols for architecture i386:
"OBJCCLASS_$_VTClient", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我在网上找不到任何解决方案。任何提示?
此处还提交了一个问题: https://github.com/braintree/braintree_ios/issues/27
答案 0 :(得分:4)
由于旧的Venmo库(在他们的大v0更新之前)是在64位架构之前构建的,因此您可能需要将“构建设置” - >架构放回“标准架构”。这是我见过的一个解决方案。
[编辑:2014年2月25日,美国东部时间下午4:47]
我让我的项目工作了。对我来说问题是我现有的构建设置妨碍了cocoapods想要加载到项目中的构建设置。那些是重要的,如Venmo框架,所以有充分的理由解决这个问题。
如果你去“构建设置” - > “其他链接器标志”,并添加一个新标志:“$(inherited)”,它将起作用。我把那个放在列表的顶部,所以我会尝试相同的,不确定订单是否重要。它的作用是保留旧的设置/标志,(我使用-ObjC),并从cocoapods导入新的设置/标志。祝你好运。
答案 1 :(得分:0)
看起来我需要将VenmoTouch.framework添加到我的target-> Link Binary with Libraries中。 那么使用cocoapods有什么意义
官方答复: https://github.com/braintree/braintree_ios/issues/27
确保验证CocoaPods正在集成哪个目标。有许多模式可用于指定此类型,例如target "name" do ... end
和link_with
。
请点击此处了解详情:http://guides.cocoapods.org/syntax/podfile.html#link_with