iPhone ARC 和 Facebook SDK

Posted

技术标签:

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

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

有人遇到这种情况吗?

【问题讨论】:

您是如何克服这个问题的?我尝试添加 -fno-objc-arc 但我仍然遇到错误***.com/questions/8701780/… 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

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

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

【讨论】:

这是很多的。如果您选择多个文件并按回车键,您可以一次在所有文件上设置 -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 静态库。

【讨论】:

Facebook 自己的 SDK 页面上描述了支持 ARC:developers.facebook.com/docs/mobile/ios/build【参考方案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 但你的代码没有问题。

以上是关于iPhone ARC 和 Facebook SDK的主要内容,如果未能解决你的问题,请参考以下文章

使用适用于 ARC 和多个开发人员的最新 iOS SDK 构建 Facebook

iPhone应用程序中的Facebook SDK登录

通过 Iphone SDK 发布 Facebook 状态更新和 url

安装 Facebook SDK - iPhone

出现错误'操作无法完成。 (com.facebook.sdk 错误 5.)' 从 iphone 在 facebook 上发布视频时

iPhone Facebook SDK 的 Facebook 类有取消方法吗?