Venmo touch Braintree付款 - 编译错误:架构i386的未定义符号:“_ OBJC_CLASS _ $ _ VTClient”

时间:2014-02-25 18:09:25

标签: ios braintree venmo

我已经使用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

2 个答案:

答案 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 ... endlink_with

请点击此处了解详情:http://guides.cocoapods.org/syntax/podfile.html#link_with