找不到模块 FBSDKCoreKit Cocoapods
Posted
技术标签:
【中文标题】找不到模块 FBSDKCoreKit Cocoapods【英文标题】:Cannot find module FBSDKCoreKit Cocoapods 【发布时间】:2016-06-02 08:18:55 【问题描述】:我正在尝试使用 CocoaPods,使用 use_frameworks 将 facebook 集成到我的应用程序中!标签,根据 facebook 的instructions here,还包括吊舱螺栓。当我尝试在我的 appdelegate 中使用 import FBSDKCoreKit
时,我得到一个 no such module 'FBSDKCoreKit 错误。我在下面包含了我的 podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.2'
use_frameworks!
pod 'Bolts'
pod 'Alamofire', '~> 3.0'
pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'
pod 'FBSDKLoginKit'
另外,在我的 Pods 文件夹中,Bolts、FBSDKCoreKit 和 FBSDKSharekit 旁边有一个问号,但我之前一直在使用的 alamofire 旁边没有一个问号。在我的 Pods 项目的 Frameworks 文件夹中,FBSDKCoreKit 和 Bolts 都列在那里,但都是红色的。 有任何想法吗?我已经尝试清理我的项目,并重新安装和更新 pod。
【问题讨论】:
你是如何导入 FB 模块的? @CatalinaT,我只是在使用import FBSDKCoreKit
【参考方案1】:
似乎 facebook pod 是 Objective-C,它们需要一种特殊的方式在 swift 项目中导入。
这就是我让它工作的方式:
如果您没有,请在您的项目中创建一个桥接头(我创建了一个名为 Bridging-Header.h
的新头文件,并将其设置为项目设置中的桥接头,如屏幕截图所示)
然后在这个文件中导入 facebook 模块。这是我的文件的样子:
#ifndef Bridging_Header_h
#define Bridging_Header_h
@import FBSDKCoreKit;
@import FBSDKLoginKit;
#endif /* Bridging_Header_h */
如果这项锻炼适合您,或者您需要更多帮助,请告诉我。
【讨论】:
那是为了使用 CocoaPods 吗?我认为 use_frameworks 不需要这样做!无论如何,我这样做了,但现在收到消息“在桥接头文件中找不到模块'FBSDKCoreKit',而 FBSDKLoginKit 也有类似的消息。【参考方案2】:我解决了这个问题
-
移除桥接头。 Facebook SDK 在 4.1 版之后不再需要它们
将所有 .frameworks 添加到项目构建阶段 -> 将二进制文件与库链接
选择每个框架并构建它。您可以通过选择运行箭头旁边的项目名称来执行此操作。
清理项目并重新启动计算机。
【讨论】:
你没有使用 cocoapods 吗?你只是复制 .frameworks 吗?【参考方案3】:先添加pod文件
pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'
这是 facebook swift 库,之后在使用 FBSDKCoreKit 之前,只需使用 FacebookCore 然后导入 FBSDKCoreKit
【讨论】:
另外安装这些 pod 后我遇到了同样的错误【参考方案4】:对于从Carthage
移动到Cocoapods
的人,请确保从Link Binary With Libraries
选项下的Link Binary With Libraries
中删除FBSDKCoreKit
的迦太基引用。
【讨论】:
【参考方案5】:请尝试以下步骤,
明确提及版本,即使用pod 'FBSDKCoreKit', '~>5.8.0'
pod 'FBSDKShareKit', '~>5.8.0'
pod 'FBSDKLoginKit', '~>5.8.0'
sudo pod repo update
更新 pod 存储库
使用 pod update
更新 pod
【讨论】:
这是一个很好的解决方案,因为 5.8.0 不需要 swift,7.1.1 默认需要它。【参考方案6】:非常简单的解决方案,如果您使用的是Apple Swift Packages
:
转到导航器窗格并选择项目
然后确保在“Project”而不是“Targets”下选择项目名称
然后选择包依赖选项卡
你会在那里找到 Facebook 包,双击它
将版本更改为 9.0.0 并点击“完成”
重建,应该更正。
请注意,您可能需要 this url 将 Facebook SDK 添加为 Apple Swift Packages
而不是 Cocoapods。
【讨论】:
【参考方案7】:你可以试试: pod 'FBSDKCoreKit/Swift'
【讨论】:
以上是关于找不到模块 FBSDKCoreKit Cocoapods的主要内容,如果未能解决你的问题,请参考以下文章
Facebook SDK 4.1.0 错误“模块 'FBSDKCoreKit' 的 Umbrella 标头不包括标头 'FBSDKTestUsersManager.h'
FBSDKCoreKit 的 Facebook iOS8 SDK 构建模块错误