【问题标题】:iPhone ARC & Facebook SDKiPhone ARC 和 Facebook SDK
【发布时间】:2011-12-07 19:31:38
【问题描述】:

我在使用 Facebook 的 SDK 时遇到各种构建错误,因为我的应用使用了 ARC。我尝试从编译器中删除 Facebook 文件以避免这种情况,但是当我删除 Facebook.m 文件时出现 Apple Mach-O 错误。如果我把它放回编译源,我会得到 ARC 错误。

有人遇到这种情况吗?

【问题讨论】:

标签: iphone facebook automatic-ref-counting


【解决方案1】:

您是否使用编译器标志将它们从弧中排除 -fno-objc-弧 ? 你可以看到一个答案here

【讨论】:

    【解决方案2】:

    这就是为什么通过复制和粘贴文件来分发共享库不好。一个库应该作为它自己的带有静态库目标的 Xcode 项目分发,这样你的项目的构建设置要求和你使用的库就不会搞砸。

    在此处提交 Facebook SDK 的错误:https://github.com/facebook/facebook-ios-sdk/issues

    同时将-fno-objc-arc 标志添加到Facebook SDK 的实现文件中。你可以这样做;

    1. 选择您的应用目标
    2. 转到构建阶段选项卡
    3. 编译源部分下的每个文件添加。

    【讨论】:

    • 这是很多的。如果您选择多个文件并按回车键,您可以一次在所有文件上设置 -fno-objc-arc。
    【解决方案3】:

    新的 SDK 未明确支持开箱即用的 ARC,但有一个 shell 脚本可用于构建可在 ARC 项目中使用的静态库。只需导航到本地 git 存储库并运行

    % ~/facebook-ios-sdk/scripts/build_facebook_ios_sdk_static_lib.sh
    

    这将在 /lib/facebook-ios-sdk 文件夹下创建静态库(例如 ~/facebook-ios-sdk/lib/facebook-ios-sdk)。然后,您可以将 facebook-ios-sdk 文件夹拖到应用 Xcode 项目中以包含 iOS Facebook SDK 静态库。

    【讨论】:

    【解决方案4】:

    实际上,使 Facebook iOS sdk 与 ARC 兼容所需的更改很少。我已经对我的代码进行了更改,但是,我不知道将其发送回社区,任何指针?

    这是我发表的一篇文章,用于解释如何在 Xcode 4.2 上以简单的方式将其与 ARC 一起使用: http://nabtech.wordpress.com/2012/02/02/facebook-ios-sdk-and-arc/

    【讨论】:

    • 您是否可以通过电子邮件向我发送您的 Facebook iOS sdk 版本,我被类似的问题困扰了好几天。 jamespresely@gmail.com
    • 我实际上找到了我在这里发布的另一种方式。包含 sdk 时,将其包含在项目文件中,但不要检查添加到目标。然后在你的项目中添加 sdk 作为静态库。这样你就可以在没有 ARC 的情况下编译 sdk 但你的代码没有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2012-12-24
    • 1970-01-01
    • 2014-03-01
    相关资源
    最近更新 更多