我处于一种棘手的情况,在过去的几天里,我还没有能够使用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)
答案 0 :(得分:4)
您收到此错误,因为两个框架都使用通用的第三方框架。所以Xcode抱怨重复的符号。此博客"Avoiding duplicate symbol issues when using common utilities within a static library"正在解释解决此问题的方法。
这是那里提到的解决方案,
我正在开发两个拥有静态库的项目 产品,将提供给其他开发人员在他们的项目中使用: Audiobus和惊人的音频引擎。在这两种情况下,我都做得很好 大量使用我的循环缓冲区代码,TPCircularBuffer,这会 如果静态库已链接,则会导致重复的符号错误 与另一个使用它的项目。
使用预处理器在期间自动重命名符号 建立阶段。
这是通过添加一系列-DOldSymbol = NewSymbol标志来完成的 '其他C标志'的构建设置 - 就像 例如,-DTPCircularBuffer = ABCircularBuffer。
答案 1 :(得分:0)
GCOAuth仅在Evernote sdk的ShareKit中使用。因此,如果您可以在没有Evernote共享者的情况下生活,快速解决方法可能是使用granular install
从ShareKit中删除evernote和evernote sdk