重复符号_OBJC_IVAR _ $ _ GCOAuth.OAuthParameters ShareKit和RestKit。

时间:2012-12-25 16:04:41

标签: ios xcode restkit sharekit jsonkit

我处于一种棘手的情况,在过去的几天里,我还没有能够使用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)

my project

2 个答案:

答案 0 :(得分:4)

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

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

  

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

     

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

     

这是通过添加一系列-DOldSymbol = NewSymbol标志来完成的   '其他C标志'的构建设置 - 就像   例如,-DTPCircularBuffer = ABCircularBuffer。

enter image description here

答案 1 :(得分:0)

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

从ShareKit中删除evernote和evernote sdk