找不到模块 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的主要内容,如果未能解决你的问题,请参考以下文章

没有这样的模块`FBSDKCoreKit`

Facebook SDK 4.1.0 错误“模块 'FBSDKCoreKit' 的 Umbrella 标头不包括标头 'FBSDKTestUsersManager.h'

FBSDKCoreKit 的 Facebook iOS8 SDK 构建模块错误

在 CI 上找不到 React Native FBSDK 文件

FBSDKCoreKit cocoapod 编译失败

颤振:“致命错误:找不到模块'位置'”Xcode找不到模块