将 FacebookSDK 导入 Swift 应用程序

Posted

技术标签:

【中文标题】将 FacebookSDK 导入 Swift 应用程序【英文标题】:Importing FacebookSDK into a Swift app 【发布时间】:2014-10-17 19:29:07 【问题描述】:

我在一个用 Swift 编写的新 ios 应用程序中使用 FacebookSDK.framework,它在一两个小时前新下载(我认为是 3.17 版)。我有 Xcode 6.01。我可以从设备上的 SDK 文件夹构建并成功运行 HelloFacebookSample 项目。但那是在Objective-C中。我没有看到任何 Swift 示例。

我无法通过 import FacebookSDK 将 SDK 导入 Swift 源单元,这会给出错误:没有这样的模块。

如果我将#import 添加到项目的桥接头中,则找不到头文件。该框架在项目使用的其他框架中可见,我可以看到标题。构建设置中的框架搜索路径看起来很合理。它包括 ~/Documents/FacebookSDK。

我之前在另一个第三方 SDK 框架中看到过这种行为。我已成功链接到我自己的框架,但它是从源代码构建的。

在 Swift 应用中使用 FacebookSDK 是否需要进一步的准备步骤?

谢谢。

【问题讨论】:

您可以使用 cocoapods 将 Facebook SDK 添加到您的项目中。 使用 CocoaPods。它们使用起来非常简单,可以为您节省大量时间。 给你:(***.com/questions/27056648/…) 【参考方案1】:

就像 cmets 中提到的一些人对您的问题一样,我建议您使用 CocoaPods。我切换了,它很棒!我提前道歉,这将是一个很长的答案,但我尽量做到彻底。

1) 安装 CocoaPods。我认为应该没问题(说明在'安装'标签http://cocoapods.org下)

2) 使用 CocoaPods 处理 Facebook SDK 依赖。这意味着您不需要下载 Facebook SDK 框架并将其拖到您的项目中(如果您已经下载了它,您现在可以将其删除)。要使用 CocoaPods:

-使用 Mac 终端,cd 到你的项目目录

-使用“pod init”命令,该命令在您的项目目录中创建 PodFile 并进行设置。如果你现在在你的项目目录中 ls,你应该会看到一个名为 PodFile 的文件

-打开 PodFile 并添加 Facebook SDK 依赖项。这是我使用 Facebook SDK 的项目的 PodFile 的样子:

platform :ios, '7.0'

target 'RatingApp' do
    pod 'Facebook-iOS-SDK', '~> 3.22'
end

请注意,对于您要添加的其他依赖项,您可以在 CocoaPods 网站上查找它们。主页应该有一个很大的 SEARCH 字段,您可以在其中输入依赖项的名称。例如,输入“Facebook”,第一个结果是“Facebook-iOS-SDK”,右边是“3.23.0”(这是本文的最新版本)。版本号右侧是剪贴板图标。如果你滚动它,你会看到你应该在 PodFile 中输入什么。请注意,滚动它会显示 pod 'Facebook-iOS-SDK', '~> 3.22' 这正是我在 PodFile 中的内容。

-关闭你的 PodFile,然后运行 ​​'pod install'

-打开 YourProject.xcworkspace,其中 YourProject 是您的项目的名称。现在你可以开始工作了! 不要再使用 YourProject.xcodeproj。

这些说明也在这里:http://guides.cocoapods.org/using/using-cocoapods.html

3) 最后,您需要桥接头。 Facebook SDK 仍在 Objective-C 中(截至目前),桥接头允许您在 Swift 项目中使用 Objective-C 框架。

-在您的项目中创建一个新文件。选择“头文件”作为文件类型

-在该文件中,进行导入。这是我的文件的样子,我将其命名为“Bridging-Header.h”

#ifndef Bridging_Header_h
#define Bridging_Header_h

#import <FacebookSDK/FacebookSDK.h>

#endif

-告诉你的 Swift 项目使用你的桥接头文件。单击您的项目目标文件,该文件带有蓝纸和“A”图标(希望您知道这是什么)。您应该看到 6 个选项卡(从 XCode 6 开始)。它们是“常规”、“功能”、“信息”、“构建设置”、“构建阶段”和“构建规则”。转到构建设置,然后一直到“Swift 编译器 - 代码生成”下的底部附近。将“安装 Objective-C 兼容性标头”设置为是。对于“Objective-C Bridging Header”,键入 YourProject/BridgingHeaderFileName.h,其中 YourProject 是您的项目的名称,BridgingHeaderFileName 是您创建的桥接头文件的名称。

您现在应该已准备好使用 Facebook SDK。好处是现在您不需要在任何文件中制作任何 Facebook 导入语句(实际上我根本不制作任何导入语句)。如果您需要另一个 SDK,您可以像 Facebook 一样使用 CocoaPods 添加它(假设它可以通过 CocoaPods 获得)。所以对我来说,好处是你永远不必在文件中做 import 语句,你也不需要自己下载任何 SDK = )

【讨论】:

【参考方案2】:

与可可足类动物:

在 iOS 中使用 facebook sdk。

关注this tutorial用swift配置cocoapods。

然后在你的 podfile 中添加以下内容。

platform :ios, "8.0"
use_frameworks!

target 'ProjectName' do
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
pod 'FBSDKMessengerShareKit'
end

没有可可足类:

将 FacebookSDK ShareKit、CoreKit、LoginKit 和 Bolts 框架拖放到项目的 Framework 文件夹中,并确保在项目中“复制”(通过在复制时单击复选框)这些框架并将框架添加到桥接头文件中。

【讨论】:

以上是关于将 FacebookSDK 导入 Swift 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

FacebookSDK(4.7) 自定义登录 UI 按钮 - Swift 2.0

Swift:Facebook SDK,成功登录后检查丢失的权限

FacebookSDK(4.1.x) 自定义登录 UI 按钮 - Swift(1.2)

swift 2 解析facebookSDK ios9

swift facebookSDK 检索用户的介绍?

将 Facebook SDK 与 Xcode Swift 项目集成 - AppDelegate 错误?