【问题标题】:Facebook SDK 3.1 for iOS - runs on iOS6, but crashes on iOS 5.x适用于 iOS 的 Facebook SDK 3.1 - 在 iOS6 上运行,但在 iOS 5.x 上崩溃
【发布时间】:2012-09-18 13:43:26
【问题描述】:

我们刚刚将 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 那边有问题吗?有人正在努力解决这个问题吗?

还是我们做错了什么?

【问题讨论】:

    标签: ios facebook ios5 sdk ios6


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢..我正要回到Xcode 4.3和FBSDK 3.0..你为我省了很多麻烦..
    • 谢谢 - 实际上我们应该更新 developers.facebook.com/docs/getting-started/… 上的文档以反映这一点
    • 将所有 3 个框架设置为可选对我有用。谢谢。
    • 虽然将库设置为“可选”将解决指定的问题,但如果您已经使用“Accounts.framework”作为必需的框架(例如,因为您也在做 Twitter 的事情),那么您最终会遇到另一个 FB 错误:“找不到符号:_ACFacebookAppIdKey”。 FB (developers.facebridge.net/bugs/…) 显然知道这一点,但推荐的解决方案显然不适用于所有人。
    • 这对我不起作用!我已将所有三个框架都设置为可选,Base SDK 是 6.0,部署目标是 5.1,架构是 armv7 和 armv7s,我不断收到关于找不到 adSupport 框架的错误!我该怎么办?
    【解决方案2】:

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

    请看附件截图。

    干杯...!!!

    【讨论】:

    • 这适用于我,iOS5.1.1 和 FB SDK 3.1。感谢您使用屏幕截图清楚地显示它。
    【解决方案3】:

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

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

    Accounts.framework

    AdSupport.framework

    Security.framework

    Social.framework

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

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

    【讨论】:

    • @JoeBlow 将它们从构建阶段设置中的“将二进制文件与库链接”列表中删除。我认为在项目导航器中引用它们不会有任何后果或影响。如果您有很多目标并且没有链接到任何目标的库,则可以从那里删除它们以减少混乱或混淆。
    猜你喜欢
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多