24

我们刚刚将 iOS 版 Facebook SDK 更新到 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方面是否存在问题,并且有人正在努力解决这个问题?

还是我们做错了什么?

4

3 回答 3

57

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

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

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

于 2012-09-26T22:27:43.080 回答
10

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

请查看随附的屏幕截图。在此处输入图像描述

干杯...!!!

于 2012-10-11T09:19:55.377 回答
1

对于阅读本文并使用适用于 iOS 的 Facebook SDK 3.6+ 的任何人,您不再需要包含这些库或选择性地链接它们。请参阅从 3.5 升级到 3.6 的 Facebook 文档:

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

Accounts.framework

AdSupport.framework

Security.framework

Social.framework

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

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

于 2013-09-16T03:59:23.563 回答