添加OpenKit时重复符号错误

时间:2014-03-23 10:46:51

标签: objective-c xcode compiler-errors

我试图使用OpenKit框架为我的游戏添加排行榜。在他们的文档之后,我已经添加了所有neccessay libs + framwork,但发生了以下错误:

duplicate symbol _OBJC_IVAR_$_AFOAuth1Client._applicationLaunchNotificationObserver in:
  /Users/Sa7bi/Library/Developer/Xcode/DerivedData/helloworld-erlcedkitaorqobgauzlzyvacnfi/Build/Intermediates/helloworld.build/Debug-iphoneos/helloworld.build/Objects-normal/armv7s/AFOAuth1Client.o
  /Users/Sa7bi/Dropbox/Aliens Wings/HelloWorld/OpenKitSDK/libOpenKit.a(AFOAuth1Client.o)
duplicate symbol _OBJC_IVAR_$_AFOAuth1Client._key in:
  /Users/Sa7bi/Library/Developer/Xcode/DerivedData/helloworld-erlcedkitaorqobgauzlzyvacnfi/Build/Intermediates/helloworld.build/Debug-iphoneos/helloworld.build/Objects-normal/armv7s/AFOAuth1Client.o
  /Users/Sa7bi/Dropbox/Aliens Wings/HelloWorld/OpenKitSDK/libOpenKit.a(AFOAuth1Client.o)
duplicate symbol _OBJC_IVAR_$_AFOAuth1Client._secret in:
  /Users/Sa7bi/Library/Developer/Xcode/DerivedData/helloworld-erlcedkitaorqobgauzlzyvacnfi/Build/Intermediates/helloworld.build/Debug-iphoneos/helloworld.build/Objects-normal/armv7s/AFOAuth1Client.o
  /Users/Sa7bi/Dropbox/Aliens Wings/HelloWorld/OpenKitSDK/libOpenKit.a(AFOAuth1Client.o)
duplicate symbol _OBJC_IVAR_$_AFOAuth1Client._signatureMethod in:
  /Users/Sa7bi/Library/Developer/Xcode/DerivedData/helloworld-erlcedkitaorqobgauzlzyvacnfi/Build/Intermediates/helloworld.build/Debug-iphoneos/helloworld.build/Objects-normal/armv7s/AFOAuth1Client.o
  /Users/Sa7bi/Dropbox/Aliens Wings/HelloWorld/OpenKitSDK/libOpenKit.a(AFOAuth1Client.o)
duplicate symbol _OBJC_IVAR_$_AFOAuth1Client._realm in:
  /Users/Sa7bi/Library/Developer/Xcode/DerivedData/helloworld-erlcedkitaorqobgauzlzyvacnfi/Build/Intermediates/helloworld.build/Debug-iphoneos/helloworld.build/Objects-normal/armv7s/AFOAuth1Client.o
  /Users/Sa7bi/Dropbox/Aliens Wings/HelloWorld/OpenKitSDK/libOpenKit.a(AFOAuth1Client.o)
....
ld: 19 duplicate symbols for architecture armv7s

在本网站上搜索时,一些用户建议如下:

  • 多次编辑同一文件==>检查了我的[Build Phases |编译来源]没什么
  • 导入" .m"文件而不是" .h" ==>检查了我的所有进口,没有

我真的不知道造成这种情况的原因。 更新:我忘记提及Google广告SDK包含在我的专业版中。当我删除" -ObjC"链接器标志,OpenKit工作正常,但谷歌没有。

1 个答案:

答案 0 :(得分:1)

经过数周的搜索,我找到了解决方案。而不是使用" -ObjC" Google广告的链接器标记," force_load"是完美的解决方案。 " -ObjC"根据人们@OpenKit:

,旗帜正在搞乱OpenKit lib
  

问题是-ObjC标志加载了所有类别,我们从OpenKit SDK中删除了一些类别,使其无需使用该标志即可运行。

enter image description here

  

force_load :只加载该框架而不会弄乱任何其他内容。[source]