Facebook IOS SDK 3.1.1 与 Xcode 4.5.2 错误

Posted

技术标签:

【中文标题】Facebook IOS SDK 3.1.1 与 Xcode 4.5.2 错误【英文标题】:Facebook IOS SDK 3.1.1 with Xcode 4.5.2 error 【发布时间】:2012-11-29 08:27:17 【问题描述】:

我是 ios 中 Facebook SDK 的新手。 为什么我在构建项目时收到此错误...

我刚刚使用 Facebook SDK 的 ios 教程中的基本步骤创建了一个新项目。

下载Facebook SDK(我用的是3.1.1) Xcode(我用的是 4.5.2) 在Other Linker Flags 中添加“-lsqlite3.0”Build Setting 添加 FacebookSDK.framework 添加 FacebookSDKResources.bundle 添加 FBUserSettingsViewResources.bundle

我尝试构建,一切正常.. 所以我继续在 AppDelegate 上编写基本实现

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation 
    return [FBSession.activeSession handleOpenURL:url];

#import <FacebookSDK/FacebookSDK.h>

当我尝试构建时,出现错误...这是日志

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_ACAccountStore", referenced from:
      objc-class-ref in FacebookSDK(FBSession.o)
  "_ACFacebookAudienceFriends", referenced from:
      -[FBSession authorizeUsingSystemAccountStore:accountType:permissions:defaultAudience:isReauthorize:] in FacebookSDK(FBSession.o)
  "_ACFacebookAppIdKey", referenced from:
      -[FBSession authorizeUsingSystemAccountStore:accountType:permissions:defaultAudience:isReauthorize:] in FacebookSDK(FBSession.o)
  "_ACAccountTypeIdentifierFacebook", referenced from:
      +[FBSession renewSystemAuthorization] 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)
  "_ACFacebookAudienceEveryone", referenced from:
      -[FBSession authorizeUsingSystemAccountStore:accountType:permissions:defaultAudience:isReauthorize:] in FacebookSDK(FBSession.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我发现这很奇怪,因为我使用与Scrumptious 示例相同的 SDK 和相同的设置,并且该示例运行良好.. 同时我收到此错误...

有什么想法吗?

【问题讨论】:

【参考方案1】:

我得到了答案...Facebook IOS SDK 3.1 需要更多框架才能使用。它需要 IOS6 上提供的“Accounts”、“AdSupport”和“Social”框架。因为Facebook SDK 3.1是基于IOS6创建的..

注意:如果您希望您的应用也为旧版本的操作系统构建,您应该为 iOS6 特定的框架使用 OPTIONAL 标志。看起来像这样。

【讨论】:

还有 libsqlite3.0.dylib!谢谢你,你救了我 在我的例子中是 Accounts

以上是关于Facebook IOS SDK 3.1.1 与 Xcode 4.5.2 错误的主要内容,如果未能解决你的问题,请参考以下文章

iOS 6 facebook sdk 3.1.1 登录错误

Facebook iOS SDK 3.1.1 安装问题

iOS – 从 facebook.com 删除应用程序后,Facebook SDK 3.1.1 访问警报不显示

iOS - Facebook SDK 3.1.1 构建失败 armv7

Facebook iOS SDK 3.1.1“closeAndClearTokenInformation”方法不起作用

Facebook SDK 3.1.1 iOS 6 在设备设置中注销,返回应用和 HTTP 状态代码:400 错误