我使用FacebookSDK.framework,在一小时或两年前刚刚下载(我认为版本为3.17),在一个用Swift编写的新iOS应用程序中。我有Xcode 6.01。我可以从设备上的SDK文件夹构建并成功运行HelloFacebookSample项目。但这是在Objective-C中。我没有看到任何Swift样本。
我无法通过导入FacebookSDK将SDK导入Swift源单元,这会导致错误:没有这样的模块。
如果我添加#import< FacebookSDK / FacebookSDK.h>到项目的桥接头,它找不到头文件。该框架在项目使用的其他框架中可见,我可以看到标题。构建设置中的框架搜索路径看起来合理。它包括〜/ Documents / FacebookSDK。
我之前在使用其他第三方SDK框架时已经看到过此行为。我成功地链接到了我自己的框架,但这是从源代码构建的。
将FacebookSDK与Swift应用程序一起使用需要进一步的准备步骤吗?
感谢。
答案 0 :(得分:2)
就像你对问题的评论中提到的一些人一样,我建议你使用CocoaPods。我转过身来,很棒!我提前道歉,这将是一个很长的答案,但我试图彻底。
1)安装CocoaPods。应该没问题,我不会想到(这里的说明在'安装'标签http://cocoapods.org下)
2)使用CocoaPods来处理Facebook SDK依赖项。这意味着您不需要下载Facebook SDK Framework并将其拖入您的项目中(如果您已下载它,则可以立即将其删除)。要使用CocoaPods:
- 使用Mac终端,cd到您的项目目录
- 使用' pod init'命令,它在项目目录中创建PodFile并进行设置。如果您现在位于项目目录中,则应该看到名为PodFile
的文件-open 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项目来使用您的桥接头文件。点击您的项目目标文件,该文件是蓝纸和&#39; A&#39;图标(希望你知道这是什么)。您应该看到6个选项卡(从XCode 6开始)。这些是“常规”,“功能”,“信息”,“构建设置&#39;构建阶段”,以及&#39;建立规则&#39;。转到Build Settings,然后在Swift Compiler - Code Generation&#39;下一直到底部附近。设置&#39;安装Objective-C兼容性标题&#39;是的。对于&#39; Objective-C Bridging Header&#39;,输入YourProject / BridgingHeaderFileName.h,其中YourProject是项目的名称,BridgingHeaderFileName是您创建的桥接头文件的名称。
您现在应该全部使用Facebook SDK。好处是,现在您不需要在任何文件中制作任何Facebook导入语句(我实际上根本不做任何导入语句)。如果你需要另一个SDK,可以像使用CocoaPods的Facebook一样添加它(假设它可以通过CocoaPods获得)。所以对我来说,好的一点是你永远不必在文件中创建import语句,而且你不需要自己下载任何SDK =)
答案 1 :(得分:0)
使用cocoapods:
在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
没有cocoapods:
将FacebookSDK ShareKit,CoreKit,LoginKit和Bolts框架拖放到项目的Framework文件夹中,并确保&#34;复制&#34; (通过复制时单击复选框)项目中的那些框架,并在桥接头文件中添加框架。