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。
然后我将FBSDKCoreKit
、FBSDKLoginKit
和FBSDKShareKit
框架拖到我的项目中。
当我运行项目时,它工作正常。但是当我关闭并重新打开它时,会出现"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
并安装了FBSDKCoreKit
、FBSDKLoginKit
、FBSDKShareKit
的当前稳定pod版本(4.7.0
到4.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
添加。
成功编译了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 Paths(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\"",
添加缺少的标题:
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 文件