适用于iOS的Facebook SDK 3.1-在iOS 6上运行,但在iOS 5.x上崩溃

适用于iOS的Facebook SDK 3.1-在iOS 6上运行,但在iOS 5.x上崩溃,ios,facebook,ios5,sdk,ios6,Ios,Facebook,Ios5,Sdk,Ios6,我们刚刚将iOS版Facebook SDK更新为3.1。 Facebook SDK 3.0.8没有在iOS 6上运行,现在我们已经升级到3.1,它在iOS 6上运行,但在iOS 5.x下崩溃 由于AdSupport.framework应用程序在启动后立即在iOS 5.x上崩溃,出现以下错误: dyld: Library not loaded: /System/Library/Frameworks/AdSupport.framework/AdSupport Referenced from: /V

我们刚刚将iOS版Facebook SDK更新为3.1。 Facebook SDK 3.0.8没有在iOS 6上运行,现在我们已经升级到3.1,它在iOS 6上运行,但在iOS 5.x下崩溃

由于AdSupport.framework应用程序在启动后立即在iOS 5.x上崩溃,出现以下错误:

dyld: Library not loaded: /System/Library/Frameworks/AdSupport.framework/AdSupport

Referenced from: /Volumes/Macintosh HD/Users/dmitrybaranov/Library/Application Support/iPhone Simulator/5.0/Applications/D6A93996-1E58-48A5-A457-DBC4FCCEE0EB/app.app/app
        
Reason: image not found
(lldb)
有人面对过这个问题吗?Facebook方面有问题吗?有人正在努力解决这个问题


还是我们做错了什么?

您是否将框架设置为可选的?添加AdSupport.framework、Social.framework和Accounts.framework时,右侧有一个下拉菜单,您可以在“必需”和“可选”之间进行选择。请参见此处的图片示例:

另一件需要检查的事情是在项目的“构建设置”中,“基本SDK”是6.0,“iOS部署目标”是iOS 4.3


我可以使用这些设置在iOS 5.1上构建FB SDK 3.1。

如果您的目标是iOS版本低于6.0,则需要将AdSupport.frameworkSocial.frameworkAccounts.framework作为可选链接

请看附带的屏幕截图


干杯

对于阅读本文并使用Facebook SDK 3.6+For iOS的任何人,您不再需要包含这些库或选择性地链接它们。见

“删除安装Facebook SDK时添加到应用程序中的框架依赖项。SDK仍然依赖于这些框架依赖项,但现在会自动加载它们,从而简化安装。删除这些框架/库:

Accounts.framework

AdSupport.framework

Security.framework

Social.framework

libsqlite3.dylib
[或删除-lsqlite3.0链接器标志]


[注意:如果您的应用程序直接使用这些框架/库中的任何API,您的项目仍应明确包含该框架]“

非常感谢。。我正要回到Xcode 4.3和FBSDK 3.0。。你帮我省去了很多麻烦。谢谢-实际上我们应该更新上的文档以反映这一点。将所有3个框架设置为可选对我来说都很有效。谢谢。虽然将库设置为“可选”将解决指定的问题,但如果您已经将“Accounts.framework”用作必需的框架(例如,因为您也在做Twitter的工作),那么您将最终遇到另一个FB错误:“未找到符号:\ ACFacebookAppIdKey”。FB()显然知道这一点,但推荐的解决方案显然不适用于所有人。这不适用于我!我已经将这三个框架都设置为可选,基本SDK为6.0,部署目标为5.1,架构为armv7和armv7s,我不断发现关于adSupport framework not found的错误!我应该怎么做?这对我来说很有用,iOS5.1.1和FB SDK 3.1。感谢您用屏幕帽清晰地显示它。@JoeBlow将它们从“构建阶段设置”中的“链接二进制文件与库”列表中删除。我不认为在ProjectNavigator中引用它们会产生任何后果或影响。如果您有很多目标,并且没有链接到任何目标的库,您可以从那里删除它们以减少混乱或混乱。