我一直在尝试react-native-fbsdk
使用 CocoaPods,因为我更喜欢获取 Facebook SDK 作为该pod install
过程的一部分,但我运气不佳。我知道我可以react-native link
使用 npm 库并手动下载和添加必要的框架,但是当我有一个非常好的包管理器可供我使用时,这似乎相当愚蠢。
从文档来看,它应该是相当简单的——只需将必要的 pod 添加到Podfile
,对吗?但无论我尝试什么,似乎都没有包含原生 FBSDK 模块。我已经尝试了很多不同Podfile
的 s,有些带有use_framework!
and pod 'Bolts'
,有些带有 just pod 'FBSDKCoreKit'
。这是我目前正在使用的:
target 'FacebookPods' do
pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'
pod 'FBSDKLoginKit'
target 'FacebookPodsTests' do
inherit! :search_paths
end
end
但是当我运行我的测试应用程序并尝试对react-native-fbsdk
模块做任何事情时,我收到错误,抱怨各种本机模块未定义。这是我的index.ios.js
文件,试图访问LoginManager
:
import React, {Component} from "react"
import {AppRegistry, Text} from "react-native"
import {LoginManager} from "react-native-fbsdk"
export default class FacebookPods extends Component {
componentWillMount() {
LoginManager.logInWithReadPermissions(["email"])
.then(() => console.log("Success!"))
.catch((err) => console.log("Failure!", err))
}
render() {
return <Text>Hello World</Text>
}
}
AppRegistry.registerComponent("FacebookPods", () => FacebookPods)
但这会引发错误undefined is not an object (evaluating 'LoginManager.logInWithReadPermissions'
。FBLoginManager.js
对 NativeModules 的进一步检查表明,根本没有包含本机 FBSDK 模块。我还在启动时收到以下警告:
2017-07-13 19:50:19.006 [warn][tid:com.facebook.react.JavaScript] Warning: Native component for "RCTFBLikeView" does not exist
2017-07-13 19:50:19.007 [warn][tid:com.facebook.react.JavaScript] Warning: Native component for "RCTFBLoginButton" does not exist
2017-07-13 19:50:19.008 [warn][tid:com.facebook.react.JavaScript] Warning: Native component for "RCTFBSendButton" does not exist
2017-07-13 19:50:19.009 [warn][tid:com.facebook.react.JavaScript] Warning: Native component for "RCTFBShareButton" does not exist
所以,是的,我完全不知所措。在我看来,只需添加 pod 就足以包含框架。我已经在互联网上搜索了我可能错过的任何其他步骤,但没有太多,除了react-native-fbsdk
项目中的一些问题,此后这些问题已被删除。