1

我处于一个棘手的情况,在过去的几天里,我无法在 sharekit 实现方面取得进展,因为我在使用 RestKit 时遇到了重复的符号错误。我正在运行 iOS 5.1 和最新版本的 xcode。根据给出的指南,我已经安装了两个库。我不明白如何从 ShareKit 或 RestKit 中删除对此的引用,而不会导致其中之一出现问题。我真的需要一些帮助...谢谢。

duplicate symbol _OBJC_IVAR_$_GCOAuth.OAuthParameters in:
    /Users/josephboston/Library/Developer/Xcode/DerivedData/Prowd_Wallet-ezxvmeygcnwgtzehshsnnprpsjww/Build/Products/Debug-iphoneos/libShareKit.a(GCOAuth.o)
    /Users/josephboston/Library/Developer/Xcode/DerivedData/Prowd_Wallet-ezxvmeygcnwgtzehshsnnprpsjww/Build/Products/Debug-iphoneos/libRestKit.a(GCOAuth.o)

我的项目

4

2 回答 2

4

您收到此错误是因为两个框架都使用通用的第三方框架。所以 Xcode 抱怨重复的符号。此博客“在静态库中使用常用实用程序时避免重复符号问题”正在解释解决此问题的方法。

这是那里提到的解决方案,

我现在正在处理两个具有静态库产品的项目,这些产品将提供给其他开发人员在他们的项目中使用:Audiobus 和 The Amazing Audio Engine。在这两种情况下,我都大量使用了我的循环缓冲区代码 TPCircularBuffer,如果静态库与另一个使用它的项目链接,这将导致重复的符号错误。

在构建阶段使用预处理器自动重命名符号。

这是通过将一系列 -DOldSymbol=NewSymbol 标志添加到“其他 C 标志”构建设置来完成的 - 例如 -DTPCircularBuffer=ABCCircularBuffer。

在此处输入图像描述

于 2012-12-25T19:45:40.993 回答
0

GCOAuth 仅由 Evernote sdk 在 ShareKit 中使用。因此,如果您可以在没有 Evernote 共享器的情况下生活,快速的解决方法可能是使用粒度安装从 ShareKit 中删除 evernote 和 evernote sdk

于 2012-12-27T08:09:24.307 回答