FBSDKCoreKit/FBSDKCoreKit.h 未找到错误

Posted

技术标签:

【中文标题】FBSDKCoreKit/FBSDKCoreKit.h 未找到错误【英文标题】:FBSDKCoreKit/FBSDKCoreKit.h not found error 【发布时间】:2015-07-20 02:30:31 【问题描述】:

我正在实现 FB 登录,所以我从 https://developers.facebook.com/docs/ios 下载了 SDK。 然后我将FBSDKCoreKitFBSDKLoginKitFBSDKShareKit 框架拖到我的项目中。

当我运行项目时,它工作正常。但是当我关闭并重新打开它时,会出现"FBSDKCoreKit/FBSDKCoreKit.h not found error"。然后我再次将 FBSDKCoreKit 框架复制粘贴到我的项目库中 错误消失,这个过程继续。以前有人遇到过这个问题吗?

我应该怎么做才能解决这个错误?

【问题讨论】:

你设置了你的.plist 是的,带有 FB ID、名称和 URL 类型 @MSwapnil 你找到解决方案了吗? @MSwapnil 我正在使用 Pods,我也安装了 Bolts pod。但仍然,上述问题正在发生...... @Femina 你找到解决方案了吗?我也在使用 Pods 【参考方案1】:

请务必按照以下步骤操作:

取消选择将项目复制到目标组的文件夹。 https://developers.facebook.com/docs/ios/getting-started/

另外,在您的构建设置中,查看以下字段:“框架搜索路径” 你应该有这样的东西:

/Users/[username]/Documents/FacebookSDK

或更通用的配置

~/Documents/FacebookSDK

另外,查看 Finder 并确保框架确实存在

【讨论】:

取消选择或选择将项目复制到文件夹中?? 取消选择 - 不选择 我遇到了同样的问题,但我也没有将 SDK 从“FacebookSDKs-iOS-20151111”重命名为“FacebookSDK”... 我认为应该是:$HOME/Documents/FacebookSDK 为什么需要重命名为 FacebookSDK 并且需要在 Documents 文件夹中?【参考方案2】:

更新Cocoapods 1.0.0后,我删除了pod.lock并安装了FBSDKCoreKitFBSDKLoginKitFBSDKShareKit的当前稳定pod版本(4.7.04.11.0

然后我遇到同样的错误。我所做的是:

    在 Xcode 中添加了标头搜索路径构建设置:

    "$PODS_ROOT/Headers/Public/Facebook-iOS-SDK\"
    "$PODS_ROOT/Headers/Public/Facebook-iOS-SDK/FacebookSDK\"
    "$PODS_ROOT/Headers/Public/FBSDKCoreKit\"
    "$PODS_ROOT/Headers/Public/FBSDKCoreKit/FBSDKCoreKit\"
    

然后我仍然对另一个文件有错误。因为 XCode 使用的是预构建框架。

未找到 FBSDKCoreKit/FBSDKCopying.h

    清理构建 -> ⇧⌘K (Shift + Command + K) - 清理构建的框架。 清理构建文件夹 -> ⌥⇧⌘K (Option+Shift+Command+K) 关闭 Xcode // 重要! - 否则它会自动为当前打开的项目重新创建 DerivedData

    在终端中运行此命令

    rm -rf ~/Library/Developer/Xcode/DerivedData
    

    打开 XCode 并构建成功

【讨论】:

这确实有效。谢谢!您愿意详细说明为什么会这样吗? 在这个上救了我。非常感谢! 这就是解决方案! 效果很好,我也没有更改标题搜索路径上的任何内容。 我跳过了 1,2,3,4,5,但我只是出去吃午饭。它奏效了!谢谢!!【参考方案3】:

我必须通过删除框架并通过右键单击项目->添加文件...再次添加它来解决这个问题,然后选择框架并在需要时选择复制文件的选项。我知道这不是 Facebook 推荐的,但我无法让它发挥作用,但这种方式奏效了! 我正在使用 FBSDK 的 v4.6 和 Xcode 7 beta 6。 希望它可以帮助你和其他面临同样问题的人:)

【讨论】:

但这绝对是错误的路径参考,请确保它存在于 /User/mike/Documents/FacebookSDK 而不是下载文件夹中,也没有像 FacebookSDK1.1.x 这样的版本你答案虽然很有帮助,但保证可以工作。【参考方案4】:

这也让我痛苦了好几个小时!终于找到了根本问题。

Facebook SDK必须位于 ~/Documents/FacebookSDK

这是因为在 RCTFBSDK 项目中,此路径是硬编码的。但是您可以通过将自定义位置添加到 RCTFBSDK 项目的框架搜索路径来添加自定义位置(它将显示在错误控制台中)!

【讨论】:

无论出于何种原因,我不得不使用System Framework Search Paths 而不是Framework Search Paths【参考方案5】:

FB 开发者不要选择复制文件。这会产生问题。但是我做了相反的事情

    如果需要,我选择了副本项目。它在我的项目中复制了框架。 Search Path 也自动由 xcode 7.2 添加。

    1234563 ..目录...

成功编译了2个项目。

【讨论】:

【参考方案6】:

我必须在 $(PROJECT_DIR) 上方的框架搜索路径中移动 FacebookSDK 路径

$(SRCROOT)/../../../Documents/FacebookSDK
$(inherited)
$(PROJECT_DIR)

【讨论】:

【参考方案7】:

如果以上任何一个答案都不起作用,试试这个:

打开您的~/Documents/FacebookSDK 文件夹。 检查文件名右侧是否有此云图标:

如果是这样,macOS 会从您的计算机中删除您的文件并将它们上传到 iCloud! (感谢苹果)

你可以:

    点击所有云图标,将文件下载回来 在您的 Mac 上禁用存储优化以防止它再次发生

【讨论】:

【参考方案8】:

对于 React Native 开发人员:

建议的步骤:

1.确保 Facebook SDK 框架安装在 ~/Documents/FacebookSDK 中。

2)确保 FBSDK[Core, Login, Share]Kit.framework 出现在 构建目标的 Build 的 Link Binary with Libraries 部分 阶段。

3)确保您的框架搜索路径 构建目标的构建设置是

$(HOME)/Documents/FacebookSDK

而不是

~/Documents/FacebookSDK 

如果还是不行的话:

1)sudo chmod -R 755 ~/Documents/FacebookSDK

2) 设置RCTFBSDK.xcodeproj的framework搜索路径为

  $(HOME)/Documents/FacebookSDK 

(在项目文件夹的库下) set RCTFBSDK framework searchpath as here

清理您的项目(command+ shift + k)并构建。

【讨论】:

【参考方案9】:

如果您的 FacebookSDK 与不同的问题的解决方案

~/Documents/FacebookSDK

因为您不希望 iCloud Drive 加载 FacebookSDK; 您必须更改添加的“框架搜索路径”

react-native-fbsdk

这是因为在 Libraires 里面的 RCTFBSDK.xcodeproj;路径是硬编码的。但是您可以通过将其添加到 RCTFBSDK 项目的框架搜索路径来添加您的自定义位置。

    选择项目 库 选择“RCTFBSDK.xcodeproj” 构建设置 在“框架搜索路径”中添加您的自定义路径 例如:/Users/rajanmaharjan/FacebookSDK 清理构建 -> ⇧⌘K (Shift + Command + K) - 清理构建框架。 构建项目;它应该会成功构建。

【讨论】:

【参考方案10】:

Xcode 11 + CocoaPods 解决方案

在您项目的根目录中,即您有 MyApp.xcworkspace 打开终端和初始化 pod 的 pod init 的同一路径,然后添加所需的 FBSDK pod - 您的 Podfile 应该类似于那:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'MyApp' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MyApp
  pod 'FBSDKCoreKit'
  pod 'FBSDKLoginKit'
  pod 'FBSDKShareKit'   
end

现在在您的终端 pod install 中打开 MyApp.xcworkspace不是 MyApp.xcodeproj )。转到MyApp -> Build Phases -> Link Binary with Libraries,您应该会在框架列表的底部看到Pods_MyApp.framework。如果您单击Pods_MyApp.framework 下方的+,您应该在Workspace 下方的新窗口中列出Pods 的所有与FBSDK 相关的位置。

注意:确保您安装的是 FBSDK,而不是 Facebook SDK,因为第二个已经过时了。

【讨论】:

【参考方案11】:

我遇到了同样的问题。我通过在我的框架搜索路径值周围使用引号来修复它,即“/Users/.....”。显然,我的文件路径中有一些空格。

【讨论】:

【参考方案12】:

我有同样的问题。我使用的是 Facebook SDK 4.10.0 版。我知道我的解决方案不好,但对我有用。我更改了 Facebook 源代码。 将导入文件路径从#import <FBSDKCoreKit/FBSDKCoreKit+Internal.h>更改为#import <FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h>

【讨论】:

【参考方案13】:

使用 CocoaPods,唯一对我有用的是:

    在 Xcode 的 Build Settings 下更新 Header Search PathsNOT Framework Search Paths):

    - "\"$PODS_ROOT/Headers/Public/Facebook-iOS-SDK\"",

    - "\"$PODS_ROOT/Headers/Public/Facebook-iOS-SDK/FacebookSDK\"",

    + "\"$PODS_ROOT/Headers/Public/FBSDKCoreKit\"",

    + "\"$PODS_ROOT/Headers/Public/FBSDKCoreKit/FBSDKCoreKit\"",

    添加缺少的标题:

    cd Pods/Headers/Public/FBSDKCoreKit/FBSDKCoreKit/ && ln -s ../../../../FBSDKCoreKit/FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h FBSDKCoreKit+Internal.h

编辑:第 2 点显然需要在每次调用 pod install 后重复。

【讨论】:

【参考方案14】:

对于 Xcode 7.3,以下内容对我有用。 按照 FB 指南中提到的步骤,另外执行以下操作:

步骤 1. 进入 Document/FacebookSDK 文件夹

步骤 2. 点击 FBSDKCoreKit.framework

步骤 3. 在此文件夹中删除 Modules 文件夹,然后拖放到您的 Xcode 项目中。

参考:https://***.com/a/29532202

谢谢

【讨论】:

【参考方案15】:

对于从 Carthage 移动到 Cocoapods 的人,请确保从 Build Phases 选项下的 Link Binary With Libraries 中删除 FBSDKCoreKit 的 Carthage 引用。

【讨论】:

【参考方案16】:

我遇到了类似的问题,但无论如何都无法解决编译器错误。

我遵循并执行了几次确切的集成步骤,直到我注意到我的项目文件夹中有 FBSDKCoreKit.framework 的副本(可能是由于错误而发生的)。此外,除了 /Users/username/Documents/FacebookSDK 之外,Framework Search Paths 已经包含 $(PROJECT_DIR)

所以我从项目目录中删除 FBSDKCoreKit.framework 的副本,现在一切正常。

【讨论】:

【参考方案17】:

我昨晚遇到了这个问题,并想发布我的解决方案以防其他人遇到同样的问题。我的问题是我的应用程序在 sim 和我的设备上构建和运行良好,但是每当我尝试运行单元测试时,构建都会因为 FBSDKCoreKit 而失败。我花了大约 30 分钟才找到问题所在,当我这样做时,我感觉自己像个傻瓜。

确保 FBSDKCoreKit 包也适用于您的测试,而不仅仅是您的常规应用程序构建。

【讨论】:

【参考方案18】:

我在升级到 Xcode 8 时遇到了这个问题,并且能够通过更改来解决它

#import <FBSDKCoreKit / FBSDKCoreKit.h>

#import <FBSDKCoreKit/FBSDKCoreKit.h>

【讨论】:

【参考方案19】:

当您将目录添加到 Build Settings ->“Framework Search Paths”时,请确保将其添加到 Debug 和 Release。

愚蠢的错误,但如果您是 xcode 中 iOS 开发的新手,您可能会错过这个。

【讨论】:

【参考方案20】:

就我个人而言,包括应用程序名称在内的各种路径中的空格都有问题。删除空格(或在任何地方添加“”以保护路径)解决了这个问题。

【讨论】:

【参考方案21】:

我有类似的问题。修复包括在手动将不同的框架添加到 XCode 框架中时选择:“如果需要则复制文件”。

【讨论】:

【参考方案22】:

我将框架拖到 xcode 中的 Framework 文件夹中,如果需要,选择复制文件,并且在没有任何其他配置更改的情况下一切正常。

【讨论】:

【参考方案23】:

我已经安装了 react-native-fbsdk 并使用 react-native-link react-native-fbsdk 链接。

按照以下链接的说明进行操作

https://developers.facebook.com/docs/react-native/configure-ios

这提供了使用 ios_setup.js 链接 react-native 库我遵循以下步骤。

    在facebook developer account 上设置。

    通过执行以下命令安装文件 ios_setup.js 项目根文件夹中的命令提示符。

curl -O https://raw.githubusercontent.com/facebook/react-native-fbsdk/master/bin/ios_setup.js

    通过执行以下命令安装 plist 包、xcode 包和 adm-zip 包。 npm install plist xcode adm-zip 通过执行以下命令运行脚本 ios_setup.js,并插入您应用的应用 ID 和应用名称。如果您的应用名称超过一个单词,请将其用引号引起来。

node ios_setup.js [App ID] [App Name]

运行 node ios_setup.js 时,它会自动链接 ios 中的所有文件。

【讨论】:

【参考方案24】:

在此处使用多个答案进行故障排除后。这就是我所做的。

    我把~/Documents/FacebookSDK改成了"$(HOME)/Documents/FacebookSDK"注意:我用引号" 我将"$(HOME)/Documents/FacebookSDK" 移到标题搜索路径列表的顶部。

【讨论】:

【参考方案25】:

FBSDKLoginKit 出现同样的错误

如果你使用多个 pod 项目

install! 'cocoapods',
  :generate_multiple_pod_projects => true

那么你应该强制 cocoapods 将所有 FBSDK pod 放到同一个项目中,以使私有 header 可见

pod 'FBSDKCoreKit', '5.11.0', :project_name => 'FBSDK'
pod 'Bolts', '1.9.0', :project_name => 'FBSDK'
pod 'FBSDKShareKit', '5.11.0', :project_name => 'FBSDK'
pod 'FBSDKLoginKit', '5.11.0', :project_name => 'FBSDK'

【讨论】:

【参考方案26】:

->构建配置。

     -> Framework Search paths.

将 FacebookSDK 目录放在我的例子中 ~/Documents/FacebookSDK 在:

调试

任何架构 I Any Sdk,

发布

尤其是这个错误,因为 Any architecture I Any Sdk 中没有路径 就我而言

~/文档/FacebookSDK 并且需要注意的是FacebookSDK文件夹必须在Domuments中

示例

https://photos.app.goo.gl/5bD4d39a11AalYsx1

【讨论】:

不知道你想在这里交流什么。如果这意味着 answer!,请考虑改进【参考方案27】:

/Users/[username]/Documents/FacebookSDK/ 目录更改为Documents/FacebookSDK,如下所示:

【讨论】:

以上是关于FBSDKCoreKit/FBSDKCoreKit.h 未找到错误的主要内容,如果未能解决你的问题,请参考以下文章

未找到 FBSDKCoreKit/FBSDKCoreKit.h 文件

没有这样的模块`FBSDKCoreKit`

带有 FB SDK 的 iOS 应用程序报告 FBSDKCoreKit/FBSDKCoreKit.h 文件未找到

Facebook 应用链接问题

FBSDKProfile 类别频繁失败

快速设置facebook登录