如何解决2个库之间的重复符号?

时间:2012-03-09 03:28:48

标签: objective-c xcode class

这是libfacebook_ios_sdk.a和libMMSDK.a之间的错误日志

Duplicate symbol _OBJC_METACLASS_$_SBJsonParser in /Users/RAGOpoR/Desktop
/Objective C/Archive Project/my Project/SVN/iOS temp/iPORTALs/code/Classes
/facebook-ios-sdk/libfacebook_ios_sdk.a(SBJsonParser.o) and     
/Users/RAGOpoR/Desktop/Objective C/Archive Project/my Project/SVN/iOS temp
/iPORTALs/code/Classes/MMAdView/libMMSDK.a(SBJsonParser.o) for architecture armv7

2 个答案:

答案 0 :(得分:0)

由于库是使用您的项目编译的,您只需从Facebook SDK(或MMSDK,但我之前已成功使用Facebook)中删除SBJson文件,清理并重建依赖项。

请记住,Facebook SDK附带旧版本的SBJson,如果MMSDK附带较新的版本,您可能需要调整一些方法调用。

答案 1 :(得分:0)

尝试更新MillenialMedia SDK。今天的最新版本是5.4.1,它由两个框架组成 - SpeechKit.frameworkMillenialMeda.framework

更新MMSDK非常简单 - 只需从项目中删除所有以前的文件即可。清理您的库搜索路径和框架搜索路径(任何MMSDK或MellinalMedia路径)。 Also see installation manual. enter image description here

然后将新下载的SDK包中的新框架复制到Project的顶级文件夹中。 Copy frameworks here

然后将此框架添加到Target' s - >构建阶段 - >链接二进制文件库 enter image description here

将导入样式从#import "MMSDK.h"更改为#import <MillennialMedia/MMSDK.h>

如果您尚未添加EventKit.framework,请不要忘记添加{{1}}并检查其他必需的框架:

  • AdSupport.framework程式
  • AudioToolbox.framework
  • AVFoundation.framework
  • CFNetwork.framework
  • CoreGraphics.framework
  • CoreLocation.framework
  • EventKit.framework
  • Foundation.framework
  • MediaPlayer.framework
  • MobileCoreServices.framework
  • PassKit.framework
  • QuartzCore.framework
  • Security.framework
  • Social.framework
  • SpeechKit.framework(包含在SDK下载中)
  • StoreKit.framework
  • SystemConfiguration.framework
  • UIKit.framework