Facebook SDK 导致 React Native 构建失败

Posted

技术标签:

【中文标题】Facebook SDK 导致 React Native 构建失败【英文标题】:Facebook SDK causes React Native build to fail 【发布时间】:2016-11-07 21:45:26 【问题描述】:

我的团队正在使用 React Native 构建我们的第一个 ios 应用。出于某种原因,仅在我的 Mac 上运行 react-native run-ios 后构建失败。自从我们使用 react-native-fbsdk 添加 Facebook 身份验证后,这种情况就一直在发生。

我们都在运行 node -v 7.0 和最新版本的 Xcode。我什至尝试在本地删除 repo 并将其克隆回来。作为一个实验,我团队的另一名成员在本地删除了他的 repo,将其克隆回来,并且能够让一切正常运行。我们挨着坐,做了完全相同的步骤,这对他有效,但对我无效。

以下是我在终端中收到的错误消息:

** BUILD FAILED **


The following build commands failed:
CompileC /Users/philmok/js_projects/pLot/ios/build/Build/Intermediates/RCTFBSDK.build/Debug-iphonesimulator/RCTFBSDK.build/Objects-normal/x86_64/RCTFBSDKGraphRequestManager.o RCTFBSDK/core/RCTFBSDKGraphRequestManager.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
Installing build/Build/Products/Debug-iphonesimulator/pLot.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.
Provide a valid path to the desired application bundle.
Print: Entry, ":CFBundleIdentifier", Does Not Exist

Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/pLot.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

根据this question 上的答案,我尝试运行react-native upgrade。这将允许构建完成,但会阻止 Facebook 身份验证工作。

【问题讨论】:

【参考方案1】:

确保您已下载用于 fb 登录的 FBSDK。将它放在您的文档文件夹中,然后在 xcode 中打开您的项目。在左侧菜单中单击您的项目并选择构建设置选项卡,在文档中为您的 FBSDK 提供“框架路径”路径。

【讨论】:

你应该在 android 中为此做什么? @ShariqMusharaf 不确定,这是特定于 iOS 的。我还没有在 Android 上尝试过【参考方案2】:

添加

  pod 'FBSDKCoreKit'
  pod 'FBSDKLoginKit'
  pod 'FBSDKShareKit'

到你的Podfile 然后pod install

【讨论】:

【参考方案3】:

您是否完成了所有配置步骤?这是很好的介绍,一步一步如何添加 facebook sdk 来响应原生应用程序:https://github.com/magus/react-native-facebook-login。顺便提一句。如果可以的话,我建议使用这个库,我在使用官方 facebook sdk 时遇到了很多问题,移到那个库,一切正常。

【讨论】:

我的团队成员已经在使用官方的 React Native fbsdk 并且它适用于所有人。切换到另一个库不是一种选择 您是否尝试从xCode 运行应用程序?有时您必须手动设置BundleIdentifier (xCode -> General -> Bundle Indentifier 类似于 com.myproject) 是的,捆绑标识符已设置

以上是关于Facebook SDK 导致 React Native 构建失败的主要内容,如果未能解决你的问题,请参考以下文章

操作无法完成 com.facebook.sdk 错误 3 - IOS-react-native-FBSDK

如何获取用于 react-native-fbsdk 模块的 Facebook SDK 版本

React Native:facebook-android-sdk 依赖构建错误

如何在 react native 和 facebook sdk 中管理用户帐户状态?

Facebook admob 中介 SDK 导致崩溃

react-native-fbsdk / Facebook iOS SDK - 未定义不是对象(评估'LoginManager.logInWithReadPermissions')