找不到FBSDKCoreKit / FBSDKCoreKit.h错误


78

我正在实施FB登录,所以我从https://developers.facebook.com/docs/ios下载了SDK 。然后我将n向下拖动FBSDKCoreKitFBSDKLoginKit并将FBSDKShareKit框架拖入我的项目中。

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

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


您是否设置了.plist
EI队长v2.0,

是的,带有FB ID,名称和URL类型
M Swapnil

@MSwapnil您是否已找到解决方案?
Femina 2015年

3
@MSwapnil我正在使用Pods,我也安装了Bolts吊舱。但上述问题仍在发生……
Femina 2015年

1
@Femina您是否找到了解决方案?我也使用Pods
Ne AS

Answers:


95

确保执行以下步骤:

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

另外,在“构建设置”中,查看以下字段:“框架搜索路径”您应该具有以下内容:

/Users/[username]/Documents/FacebookSDK

或更一般的配置

~/Documents/FacebookSDK

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


3
取消选择或选择将项目复制到文件夹中?
M Swapnil

取消-不要选择
etayluz

9
我遇到了同样的问题,但我也没有将SDK从“ FacebookSDKs-iOS-20151111”重命名为“ FacebookSDK” ...
adamteale 2015年

1
我认为应该是:$ {HOME} / Documents / FacebookSDK
Nestor

5
为什么需要重命名为FacebookSDK并确切地位于Documents文件夹中?
GutenYe

64

更新之后Cocoapods 1.0.0,我删除pod.lock,并安装最新的稳定版本的吊舱(4.7.04.11.0)的FBSDKCoreKitFBSDKLoginKitFBSDKShareKit

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

  1. 在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

  1. 清理构建->⇧⌘K(Shift + Command + K)-清理构建的框架。
  2. 清理构建文件夹->⌥⇧⌘K(Option + Shift + Command + K)
  3. 关闭Xcode //重要!-否则,它将自动为当前打开的项目重新创建DerivedData
  4. 在终端中运行此命令

    rm -rf ~/Library/Developer/Xcode/DerivedData
    
  5. 打开XCode并成功构建


2
这确实有效。谢谢!您愿意详细说明为什么吗?
0x6A75616E

在这一点上救了我。谢谢一群!
jdpipkin

这是解决方案!
威尔逊

效果很好,我也没有更改标题搜索路径上的任何内容。
templeman15 '16

3
我跳过了1,2,3,4,5,但是我只是去外面吃午饭。而且有效!谢谢!!
我。.. 我

33

我必须通过删除框架并通过右键单击项目->添加文件...来再次添加它来解决此问题,然后选择框架并根据需要选择“复制文件”选项。我知道这不是Facebook所建议的,但我无法使其正常工作,但是以这种方式有效!我正在使用FBSDK v4.6和Xcode 7 beta6。希望它能对您和其他面临相同问题的人有所帮助:)


但这绝对是错误的路径参考,请确保它存在于/ User / mike / Documents / FacebookSDK中,而不是在downloads文件夹中,并且其上没有类似FacebookSDK1.1.x的版本。保证工作。
代码树

16

这也让我痛苦了数小时!最后,我找到了根本问题。

Facebook SDK必须位于〜/ Documents / FacebookSDK

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


1
无论出于何种原因,我不得不用System Framework Search Paths,而不是Framework Search Paths
tybro0103

7

FB开发人员不要选择复制文件。这就造成了问题。但是我却相反

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

  2. 同时仔细检查,如果有什么的Framework Search PathsSearch PathsBuild Settings字段,然后只需添加$(PROJECT_DIR),它的功能相当于/用户/用户/文件/ ... ... PROJECT..DIR

已成功在2个项目中编译。


6

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

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

3

如果以上任何答案均无效,请尝试以下操作:

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

screenshot.png

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

您可以:

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

3

对于React Native开发者:

建议的步骤:

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

2)确保FBSDK [Core,Login,Share] Kit.framework显示在构建目标的“构建阶段”的“与库链接二进制文件”部分中。

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

$(HOME)/Documents/FacebookSDK

代替

~/Documents/FacebookSDK 

如果仍然不适合您,则:

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

2)将RCTFBSDK.xcodeproj的框架搜索路径设置

  $(HOME)/Documents/FacebookSDK 

(在您的项目文件夹的库下) 将RCTFBSDK框架的搜索路径设置为此处

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


3

如果您的FacebookSDK与

〜/文档/ FacebookSDK

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

react-native-fbsdk

这是因为在Libraires内部的RCTFBSDK.xcodeproj中;路径是硬编码的。但是您可以通过将自定义位置添加到RCTFBSDK项目的Framework Search Paths中来添加它。

  1. 选择项目
  2. 图书馆
  3. 选择“ RCTFBSDK.xcodeproj”
  4. 构建设置
  5. 在“框架搜索路径”中添加您的自定义路径,例如:/ Users / rajanmaharjan / FacebookSDK
  6. 清理构建->⇧⌘K(Shift + Command + K)-清理构建框架。
  7. 建立项目;它应该成功构建。

2

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


2

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


2

Xcode 11 + CocoaPods解决方案

在项目的根目录中,即在MyApp.xcworkspace打开Terminal和init 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,则应在新窗口中WorkspacePods所有与FBSDK相关的列表下方。

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


1

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

  1. 在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\"",

  2. 添加缺少的标头:

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

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


1

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

步骤1.转到Document / FacebookSDK文件夹

第2步。单击FBSDKCoreKit.framework

步骤3.在此文件夹中,删除Modules文件夹,然后将其拖放到Xcode Project中。

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

谢谢


1

对于要从​​此迁移的人员Carthage,请Cocoapods确保Carthage从“Link Binary With Libraries构建阶段”选项下删除FBSDKCoreKit的引用。

在此处输入图片说明


0

我有一个类似的问题,无论如何都无法解决编译器错误。

我遵循了几次并执行了确切的集成步骤,直到发现我的项目文件夹中有FBSDKCoreKit.framework的副本(可能是由于错误)。此外,框架搜索路径除了/ Users / {username} / Documents / FacebookSDK之外,还已经包含$(PROJECT_DIR)

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


0

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

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


0

升级到Xcode 8时遇到了这个问题,可以通过更改来解决

#import <FBSDKCoreKit / FBSDKCoreKit.h>

#import <FBSDKCoreKit/FBSDKCoreKit.h>


0

将目录添加到“构建设置”->“框架搜索路径”时,请确保将其添加到“调试”和“发布”中。

愚蠢的错误,但是如果您不熟悉xcode中的iOS开发,则可能会错过这一点。



0

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


0

我将框架拖到xcode内的Framework文件夹中,如果需要,选择复制文件,并且一切正常,而无需进行其他任何配置更改。


0

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

遵循以下链接的说明

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

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

  1. Facebook开发人员帐户上进行设置。

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

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

  1. 通过执行以下命令,安装plist软件包,xcode软件包和adm-zip软件包。 npm install plist xcode adm-zip
  2. 通过执行以下命令来运行脚本ios_setup.js,并插入应用程序的应用程序ID和应用程序名称。如果您的应用名称超过一个字长,则将其用引号引起来。

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

当运行节点ios_setup.js时,它将自动链接ios中的所有文件。


0

故障排除后,在这里使用几个答案。这就是我所做的。

  1. 我改变了~/Documents/FacebookSDK"$(HOME)/Documents/FacebookSDK" :我用引号"
  2. 我移至"$(HOME)/Documents/FacebookSDK"标题搜索路径列表的顶部。

0

在发生相同的错误 FBSDKLoginKit

如果您使用多个Pod项目

install! 'cocoapods',
  :generate_multiple_pod_projects => true

然后,您应该强制cocoapods将所有FBSDK Pod放入同一个项目中,以使私有标头可见

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'

-1

->构建配置。

     -> Framework Search paths.

将FacebookSDK目录放在我的情况下〜/ Documents / FacebookSDK中:

调试

任何架构,我任何SDK

释放

尤其是此错误,因为在我的情况下,任何架构中都没有路径我任何SDK

〜/文档/ FacebookSDK,应注意,FacebookSDK文件夹必须位于“文件”中

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


不知道您要在这里交流什么。考虑改善的情况下这意味着作为答案
GhostCat

-2

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

Xcode的

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.