FBSDKCoreKit/FBSDKCoreKit.h文件未找到错误,React Native iOS。

6
尝试在React Native IOS中安装Facebook SDK。
我遇到了FBSDKCoreKit / FBSDKCoreKit.h文件未找到的错误,并花费了数小时尝试使用不同的解决方案来解决它,但是无法理解出错的原因。
有什么想法吗?
React Native版本:0.40 React Native FSDK版本:0.5.0 Facebook SDK版本:4.19.0

您可以在这里找到解决方案,其中包含详细信息:https://dev59.com/wV0a5IYBdhLWcg3wmZvC#48390222 - Rajan Maharjan
可能是FBSDKCoreKit/FBSDKCoreKit.h未找到的错误的重复问题。 - Rajan Maharjan
6个回答

17

编辑:我建议使用CocoaPods,这样您就不需要手动下载/更新sdk。


如果您手动下载了sdk,请尝试以下方法:

  1. 打开您的〜/文档/FacebookSDK文件夹;

  2. 检查它是否在文件名右侧具有这些云图标:

screenshot.png

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

  1. 点击所有云图标,它会将文件下载回来。

就是这样!


如果这不是您的情况,请尝试以下方法:


1
我正在尝试使用CI构建工具,但它需要结合npm模块和github存储库中的内容(我的其他框架都在那里)。是否可以将这些SDK移动到项目结构中,并更改框架搜索路径等?这是我能想到的唯一方法,以便让构建工具实际构建它,因为它无法访问我的文档文件夹。谢谢。 - Sam Matthews

14
  1. 检查您的RN项目是否已执行react-native link
  2. Linked Frameworks And Libraries中手动检查,确保您有libRCTFBSDK.a。如果没有,请点击底部的+按钮进行链接。
  3. 在将项目本身从<0.40升级到react-native时,请确保您已经使用npm install react-native@latest --save更新了RN包,然后运行react-native upgrade
  4. 确保将sdk放在~/Documents/FacebookSDK中。我认为这很重要。

如果遇到一些错误,有时最好清除所有内容,重新开始安装。

尝试:

rm -rf ./node_modules
watchman watch-dell-all
npm cache clean
npm install
react-native run-ios

6
难以置信,将它放在~/Documents/FacebookSDK的位置对我来说解决了问题。之前我把它放在了另一个目录中。 - Varun Gupta
1
没错,那修好了。难以置信。 - Hung Vo
我们如何在SAAS构建工具(例如travis,buddybuild等)中使用sdk?我们是否必须在应用程序中实现cocoapods才能完成此操作?我们目前正在使用carthage。 - James111
@Tony。我知道根据FbSDK规范,你应该将它放在/Documents/FacebookSDK中。但这很不方便,因为我不能把它放在代码库里。每个开发者都应该有自己的/Documents/FacebookSDK。所以,我把它放在了/MyProject/FacebookSDK,但我仍然遇到了这个问题。有什么想法吗? - valerybodak
兄弟,你救了我的一天,非常感谢,把它放在/文档/FacebookSDK中解决了问题。把它放在/文档/FacebookSDK中真的真的很重要。 - Gokul Kulkarni
显示剩余3条评论

12

我也遇到了这个问题,但是我的问题在于 RCTFBSDK 特别查找 ~/Documents/FacebookSDK 路径,并且设定为 非递归。为了检查是否存在相同的问题,请打开您的 Libraries 文件夹和 RCTFBSDK.xcodeproj 文件夹。检查框架是否为红色。

enter image description here

如果是红色的话,请点击它们,在右侧面板中更改位置以存储 SDK 的位置。我将我的 Facebook SDK 按版本号存储,因此引起了问题。例如,版本 4.12 存储在 ~/Documents/FacebookSDK/4.12 中,因此 RCTFBSDK 找不到正确的 *.framework

此外,单击 RCTFBSDK.xcodeproj 并添加具有 递归 设置的 ~/Documents/FacebookSDK 到框架搜索路径。这样编译后就不会出现问题。


很棒的解决方案。虽然有些奇怪,但将这三个*.framework文档放入~/Documents/FacebookSDK中解决了我的问题。谢谢。 - David

6

在主项目和Libraries -> RCTFBSDK.xcodeproj中使用$(HOME)/Documents/FacebookSDK代替Build Settings -> Framework Search Paths下的~/Documents/FacebookSDK,以适用于Xcode 10.x。


2

检查您的FBSDK文件路径位置。我的路径最终为Users/Documents/FacebookSDK

要检查,请前往Library/RCTFBSDK.xcodeproj/Frameworks/

单击文件检查器窗口上的其中一个框架,它应该有一个名为Full Path的部分

将该路径添加到您的Framework搜索路径中。


0

导入时,请确保您正在检查此内容。

enter image description here

当你拖放包时。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接