如何修复 "Invariant Violation: requireNativeComponent: "RCTFBLoginButton“在 UIManager 中找不到。”?
How to fix "Invariant Violation: requireNativeComponent: "RCTFBLoginButton" was not found in the UIManager."?
首先让我说类似的 SO 问题表明问题可能与没有链接库有关。
我已经 运行 react-native link react-native-fbsdk
再次确认它确实已链接,并确认它是
rnpm-install info Platform 'ios' module react-native-fbsdk is already linked
rnpm-install info Platform 'android' module react-native-fbsdk is already linked
不过,我在 XCode 的 main.jsbundle
、libReact.a
和 libRCTFBSDK.a
项目中看到了几个 red indications (我发现这对显示在 "Recovered References" 下,当我试图在 Finder 中找到它时却指向任何地方)。所以,总而言之,强烈的迹象表明我的 FBSDK 设置出了问题。
因为设置指南中提到了这些,所以让我继续报告:
- 我已经下载了SDK,解压到我的
~/Documents/FacebookSDK
文件夹下
- 我已经将4个框架(
Bolts
、FBSDKCoreKit
、FBSDKLoginKit
、FBSDKShareKit
)拖到项目中,没有标记"Copy"选项
- 我的 "Build Settings" >> "Framework Search Paths" 有
~Documents/FacebookSDK
的价值(仅此而已,没有别的)
- 我的 "Build Settings" >> "Other Linker Flags" 有
-ObjC -lc++
的价值(这已经是这样了,我没有碰它,只是确认它有 ObjC
,per Facebook 的指南)
- 我的 "Build Phases" >> "Link Binary With Libraries" 有 4 个框架,加上其他几个文件,包括树中红色的两个(
libReact.a
和 libRCTFBSDK.a
)
虽然看起来问题确实出在那些红色文件中,但我没有任何线索或运气无法尝试修复它们,因此非常感谢您的帮助!
截至此问题,react-native-fbsdk github 指示应遵循 this guide,但步骤 2(链接 SDK)除外,框架是而是拖到项目中。
这类似于您从 FB 的仪表板内部获得的 "Quick Start" 指南中的指示。
这两个指南都是我所看到的问题的根源。
关注 this guide 而不是让它正常工作。
我为此苦苦挣扎了很多时间。经过一番调查和尝试,我是这样解决的:
- 删除 node_modules 和 ios/Pods
- 升级到 react-native 0.60
- npm 安装
- 将此添加到 Podfile:
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
来自 ios 文件夹:```pod install ````
将 AppDelegate 和 Info.plist 配置为 this guide 状态
我不必像指南所说的那样手动将框架拖到 Xcode 项目中。
首先让我说类似的 SO 问题表明问题可能与没有链接库有关。
我已经 运行 react-native link react-native-fbsdk
再次确认它确实已链接,并确认它是
rnpm-install info Platform 'ios' module react-native-fbsdk is already linked
rnpm-install info Platform 'android' module react-native-fbsdk is already linked
不过,我在 XCode 的 main.jsbundle
、libReact.a
和 libRCTFBSDK.a
项目中看到了几个 red indications (我发现这对显示在 "Recovered References" 下,当我试图在 Finder 中找到它时却指向任何地方)。所以,总而言之,强烈的迹象表明我的 FBSDK 设置出了问题。
因为设置指南中提到了这些,所以让我继续报告:
- 我已经下载了SDK,解压到我的
~/Documents/FacebookSDK
文件夹下 - 我已经将4个框架(
Bolts
、FBSDKCoreKit
、FBSDKLoginKit
、FBSDKShareKit
)拖到项目中,没有标记"Copy"选项 - 我的 "Build Settings" >> "Framework Search Paths" 有
~Documents/FacebookSDK
的价值(仅此而已,没有别的) - 我的 "Build Settings" >> "Other Linker Flags" 有
-ObjC -lc++
的价值(这已经是这样了,我没有碰它,只是确认它有ObjC
,per Facebook 的指南) - 我的 "Build Phases" >> "Link Binary With Libraries" 有 4 个框架,加上其他几个文件,包括树中红色的两个(
libReact.a
和libRCTFBSDK.a
)
虽然看起来问题确实出在那些红色文件中,但我没有任何线索或运气无法尝试修复它们,因此非常感谢您的帮助!
截至此问题,react-native-fbsdk github 指示应遵循 this guide,但步骤 2(链接 SDK)除外,框架是而是拖到项目中。 这类似于您从 FB 的仪表板内部获得的 "Quick Start" 指南中的指示。 这两个指南都是我所看到的问题的根源。
关注 this guide 而不是让它正常工作。
我为此苦苦挣扎了很多时间。经过一番调查和尝试,我是这样解决的:
- 删除 node_modules 和 ios/Pods
- 升级到 react-native 0.60
- npm 安装
- 将此添加到 Podfile:
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
来自 ios 文件夹:```pod install ````
将 AppDelegate 和 Info.plist 配置为 this guide 状态
我不必像指南所说的那样手动将框架拖到 Xcode 项目中。