带有XCode 4.2链接器错误的Facebook iOS SDK 3.1

bor*_*kur 19 cocoa-touch xcode4.2 facebook-ios-sdk

我刚刚将项目中的Facebook iOS SDK从3.0更新到3.1.该项目不再编译.相反,我得到以下链接器错误:

Undefined symbols for architecture i386:
  "_ACFacebookAppIdKey", referenced from:
      -[FBSession authorizeUsingSystemAccountStore:accountType:permissions:defaultAudience:isReauthorize:] in FacebookSDK(FBSession.o)
  "_ACFacebookAudienceEveryone", referenced from:
      -[FBSession authorizeUsingSystemAccountStore:accountType:permissions:defaultAudience:isReauthorize:] in FacebookSDK(FBSession.o)
  "_ACFacebookAudienceFriends", referenced from:
      -[FBSession authorizeUsingSystemAccountStore:accountType:permissions:defaultAudience:isReauthorize:] in FacebookSDK(FBSession.o)
  "_ACFacebookAudienceKey", referenced from:
      -[FBSession authorizeUsingSystemAccountStore:accountType:permissions:defaultAudience:isReauthorize:] in FacebookSDK(FBSession.o)
  "_ACFacebookAudienceOnlyMe", referenced from:
      -[FBSession authorizeUsingSystemAccountStore:accountType:permissions:defaultAudience:isReauthorize:] in FacebookSDK(FBSession.o)
  "_ACFacebookPermissionsKey", referenced from:
      -[FBSession authorizeUsingSystemAccountStore:accountType:permissions:defaultAudience:isReauthorize:] in FacebookSDK(FBSession.o)
  "_OBJC_CLASS_$_ASIdentifierManager", referenced from:
      objc-class-ref in FacebookSDK(FBSettings.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

Facebook的文档说清楚:

SDK依赖于其他三个框架(AdSupport,Accounts和Social)来使用iOS6中内置的Facebook功能.

Xcode 4.2中不存在这些框架.是否有任何解决方法,即我可以下载(在哪里?)并手动将框架添加到我的项目中,这是否足以摆脱编译错误或我是否必须升级到Xcode 4.5?

sob*_*bri 21

这些框架是iOS 6的一部分(嗯,除了AccountsiOS 5之外).如果没有升级到Xcode 4.5,那么你将无法使用它们,因此也就是iOS 6 SDK.

如果您担心这一点,您仍然可以将部署目标设置为iOS 4.3.

我认为你的选择是:

  1. 升级到Xcode 4.5,或
  2. 使用Facebook SDK 3.0.

  • @marcog你添加了框架吗?项目 - >目标 - >构建阶段 - >链接二进制文件库 - > + - >选择AdSupport,Accounts和Social (13认同)
  • 我在xcode 4.5上遇到了同样的问题. (4认同)

Gen*_*ode 9

为了清楚起见:

对于XCode 4.5:

如果使用FB SDK3.0,则只需添加Accounts和FacebookSDK框架.

如果使用FB SDK3.1,则需要添加Accounts,FacebookSDK,Social和AdSupport框架.

如果您使用FB SDK3.2 ++,请自行检查您可能需要或不需要的其他框架.;)

希望能为大家总结一下.


Bur*_*rak 6

SDK依赖于其他三个框架(AdSupport,Accounts和Social).

要添加这些内容,请转到目标摘要窗格的"链接的框架和库"部分,然后添加它们.