2

我已经使用 cocoapod 成功安装了 Braintree ios sdk,并且编译得很好。但是,当我在 appdelegate.m 文件中初始化VTClient 时。我收到编译错误:

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

4

2 回答 2

4

您可能需要将“构建设置”-> 架构放回“标准架构”,因为旧的 Venmo 库(在他们的大 v0 更新之前)是在 64 位架构之前构建的。这是我见过的一种解决方案。

[编辑:2014 年 2 月 25 日,美国东部标准时间下午 4:47]

我的项目开始工作了。对我来说,问题是我现有的构建设置妨碍了 cocoapods 想要加载到项目中的构建设置。这些是重要的,例如 Venmo 框架,所以这个问题有充分的理由。

如果您转到“构建设置”->“其他链接器标志”,并添加一个新标志:“$(inherited)”,它将起作用。我把那个放在列表的顶部,所以我会尝试相同的,不确定顺序是否重要。这样做是保留您的旧设置/标志(我使用的是 -ObjC),并从 cocoapods 导入新设置/标志。祝你好运。

于 2014-02-25T18:28:46.393 回答
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

于 2014-02-25T18:17:36.153 回答