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

我们刚刚将我们的Facebook SDK for iOS更新至3.1。 Facebook SDK 3.0.8没有在iOS6上运行,现在我们已经升级到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时,可以在“必需”和“可选”之间select右侧的下拉菜单。 在这里看到一个图片的例子: 链接

另一件要检查的事情是在你的Project的“Build Settings”中,“Base SDK”是6.0,“iOS Deployment Target”是iOS 4.3。

我可以使用这些设置在我的iOS 5.1上创buildFB SDK 3.1。

如果您定位iOS版本低于6.0,则需要使AdSupport.frameworkSocial.frameworkAccounts.framework可选链接。

请看附件截图。 在这里输入图像说明

干杯…!!!

对于任何阅读此内容以及使用Facebook SDK 3.6+ for iOS的用户,您不再需要包含这些库或可选地链接它们。 查看Facebook文档以从3.5升级到3.6:

“当你安装Facebook SDK的时候,删除添加到你的应用程序的框架依赖关系,SDK依然依赖于它们,但是现在自动加载它们,使得设置更简单,删除这些框架/库:

Accounts.framework

AdSupport.framework

Security.framework

Social.framework

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

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