【问题标题】:Duplicate Symbol _OBJC_IVAR_$_GCOAuth.OAuthParameters ShareKit and RestKit.重复符号 _OBJC_IVAR_$_GCOAuth.OAuthParameters ShareKit 和 RestKit。
【发布时间】:2012-12-11 12:21:00
【问题描述】:

我处于一个棘手的情况,在过去的几天里,我无法在 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)

【问题讨论】:

标签: ios xcode restkit sharekit jsonkit


【解决方案1】:

您收到此错误是因为两个框架都使用通用的第三方框架。所以 Xcode 抱怨重复的符号。此博客 "Avoiding duplicate symbol issues when using common utilities within a static library" 正在解释解决此问题的方法。

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

我现在正在处理两个具有静态库的项目 产品,提供给其他开发人员在他们的项目中使用: Audiobus 和神奇的音频引擎。在这两种情况下,我都做得很好 大量使用我的循环缓冲区代码 TPCircularBuffer,它会 如果链接了静态库,则会导致重复符号错误 与另一个使用它的项目。

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

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

【讨论】:

  • 好的,我对这个有点困惑……你能给我一个更具体的例子吗?我很慢。谢谢。
  • 基本上你需要打开静态库 Xcode 项目并在它们的构建设置中,你可能需要对每个重复的符号做类似的事情。很抱歉,但我无法在没有实际代码的情况下验证这一点,因为我从未遇到过这个问题。刚看到这个建议,想分享一下。
  • 澄清一下... ACB 是您的随机选择吗?只是为了改名字吗?
  • 嗯,那个博客不是我的,我猜“ACB”只是他随机分配的一个词。在他的博客中,他提到分配给-DTPCircularBuffer=ABCircularBuffer
  • @jimbob,如果您觉得上述答案有帮助,您可以投票/接受答案。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 2011-05-22
    • 2014-09-14
    • 2021-05-17
    • 2011-05-27
    • 2018-03-22
    相关资源
    最近更新 更多