找不到FBSDKCoreKit / FBSDKCoreKit.h错误

问题描述 投票:71回答:25

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

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

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

ios frameworks
25个回答
94
投票

请务必遵循以下步骤:

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

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

/Users/[username]/Documents/FacebookSDK

或者更一般的配置

~/Documents/FacebookSDK

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


2
投票

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


2
投票

对于React Native开发者:

建议的步骤:

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

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

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

$(HOME)/Documents/FacebookSDK

代替

~/Documents/FacebookSDK 

如果它仍然不适合你,那么:

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

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

  $(HOME)/Documents/FacebookSDK 

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

清理你的项目(命令+ shift + k)并构建。


1
投票

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

  1. 在Xcode中的Build Settings下更新标头搜索路径(NOT 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\"",
  2. 添加缺少的标题(s?): 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.在此文件夹中删除模块文件夹,然后拖放到Xcode项目中。

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

谢谢


1
投票

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

enter image description here


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
投票

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

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


0
投票

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


59
投票

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

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

  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. Clean Build - >⇧⌘K(Shift + Command + K) - 清理构建的框架。
  2. 清理构建文件夹 - >⌥⇧⌘K(选项+ Shift + Command + K)
  3. 关闭Xcode //重要! - 否则它会自动为当前打开的项目重新创建DerivedData
  4. 在终端中运行此命令 rm -rf ~/Library/Developer/Xcode/DerivedData
  5. 打开XCode并成功构建

0
投票

我有类似的问题。当我手动将不同的框架添加到XCode框架中时,修复包括选择:“COPY FILES IF NECESSARY”。


0
投票

我将框架拖到xcode内的Framework文件夹中,如果需要,选择复制文件,所有工作都正常,没有任何其他配置更改。


0
投票

我已经使用react-native-link react-native-fbsdk安装了react-native-fbsdk和link。

遵循以下链接的说明

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

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

  1. facebook developer account上设置。
  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,然后插入应用程序的App ID和App Name。如果您的应用名称长度超过一个字,请将其括在引号之间。

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

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


0
投票

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

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

-1
投票

- >构建配置。

     -> Framework Search paths.

将FacebookSDK目录放在我的案例〜/ Documents / FacebookSDK中:

调试,

任何建筑我任何Sdk,

发布。

特别是这个错误,因为在我的案例中,任何架构中都没有路径我任何Sdk

〜/ Documents / FacebookSDK应该注意FacebookSDK文件夹必须在Domuments中

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


-2
投票

像这样将/Users/[username]/Documents/FacebookSDK/目录更改为Documents/FacebookSDK


34
投票

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


16
投票

这也花了我几个小时的痛苦!最后我找到了根本问题。

Facebook SDK必须位于〜/ Documents / FacebookSDK

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


7
投票

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

  1. 如果需要,我选择了复制项目。它在我的项目中复制了Frameworks。 Search Path也自动添加了xcode 7.2
  2. 还要仔细检查Framework Search Paths字段下Search PathsBuild Settings中是否有任何内容,然后添加$(PROJECT_DIR)等于/ Users / user / Documents / .... PROJECT..DIR ...

成功编译成2个项目。


6
投票

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

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

3
投票

如果以上任何答案都不起作用,请尝试以下方法:

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

screenshot.png

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

您可以:

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

3
投票

如果您的FacebookSDK不同于此问题,请解决此问题

〜/文档/ FacebookSDK

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

反应天然-fbsdk

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

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

2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.