7

我已遵循 Facebook 开发人员指南中针对 iOS react native sdk 列出的所有指南,但我仍然无法构建应用程序。附上我的配置和构建日志的屏幕截图

在此处输入图像描述

sdk -L/Users/alaaattya/Library/Developer/Xcode/DerivedData/Alnomad-fcoerljazsnnxbggcygydgyxmimr/Build/Products/Debug-iphonesimulator -F/Users/alaaattya/Library/Developer/Xcode/DerivedData/Alnomad-fcoerljazsnnxbggcygydgyxmimr/Build/Products/ Debug-iphonesimulator -F/Applications/MAMP/htdocs/marscodes/alnomad-ios/ios/../node_modules/react-native-facebook-login/FacebookSDK -F/Applications/MAMP/htdocs/marscodes/alnomad-ios/ios -F。-FAlnomad -FAlnomadTests -Fbuild -FFacebookSDK -Fbuild/Build -Fbuild/Logs -FFacebookSDK/AccountKitStrings.bundle -FFacebookSDK/DocSets -FFacebookSDK/FacebookSDKStrings.bundle -FFacebookSDK/Samples -Fbuild/Logs/Build -FFacebookSDK/AccountKitStrings.bundle/Resources -FFacebookSDK/DocSets/FacebookAudienceNetworkSDK-4_13-for-iOS.docset -FFacebookSDK/DocSets/FacebookMes​​sengerShareKitSDK-1_3-for-iOS。

ld:警告:自动链接提供的“FacebookSDK/Bolts.framework/Bolts”,FacebookSDK/Bolts.framework/Bolts 上的框架链接器选项不是 dylib 架构 x86_64 的未定义符号:“_OBJC_CLASS_$_FBSDKHashtag”,引用自:objc- libRCTFBSDK.a 中的类引用(RCTConvert+FBSDKSharingContent.o) ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

4

4 回答 4

6

我最近在我的 react native 项目上做同样的事情,我也花了很多时间让它工作。

您的情况似乎是您的项目文件夹中没有包含Bolts.framework, 的依赖项。FBSDKCoreKit.framework我相信这就是为什么 Facebook 官方文档建议大家将 SDK 文件保留在~/Documents.

以下是针对遇到集成问题的任何人的一些故障排除步骤:

1. 链接react-native-fbsdk到您的项目。(编辑:最近,链接不适用于 SDK。根据下面@chez.mosey 的回答,您可以按照此博客中的步骤手动将 SDK 添加到您的项目中。)

rnpm link react-native-fbsdk

react-native link react-native-fbsdk

编辑:rnpm自 2016 年 8 月 1 日起已集成到 React Native 中。从那时起,用于react-native link链接您的依赖项。

link函数通过链接所有本机依赖项来更新您的项目,在这种情况下,我们链接react-native-fbsdk到本机 FacebookSDK。

2. 添加libRCTFBSDK.a到 Build Phases -> Link Binary with Libraries in Xcode。

这应该在您运行时自动添加react-native link,但请确保它存在。

3.手动导入FacebookSDK框架文件

从经验上讲,如果您使用 Cocoapods 下载 FBSDK 框架文件,Xcode 不会将它们与libRCTFBSDK.a. 按照官方 FB 文档中的步骤,下载文件,解压缩到~/Documents/FacebookSDK,然后将它们拖到您的 Xcode 项目中,而不需要复制它们。将路径添加到您的框架搜索路径。(如果有人知道 Cocoapods 不起作用的原因,我会全力以赴)

4.清理你的Xcode项目并删除派生数据

这样做是为了避免以前构建的文件与您当前的设置混淆。

于 2016-12-19T07:18:55.080 回答
2

当您从 ( https://developers.facebook.com/docs/ios/ ) 下载 FacebookSDK 时,该文件夹将被命名为 FacebookSDKs-iOS-4.20.1。因此,尝试将其重命名为 FacebookSDK。

然后再次清理并构建您的 Xcode 项目。

于 2017-03-15T06:48:50.387 回答
1

正如其他人所建议的那样,请确保您在此处遵循 SDK 的所有配置步骤:https ://developers.facebook.com/docs/react-native/configure-ios/

执行此操作后,我遇到了“故障排除”部分中提到的问题,“如果您收到类似'警告:'RCTFBLikeView' 的本机组件不存在'之类的构建错误,请验证 libRCTFBSDK.a 是否出现在与库链接二进制部分中构建目标的构建阶段。” 我相信这是您遇到的问题。

问题是,我不知道如何解决 libRCTFBSDK.a 没有出现的事实。原来,这是因为 react-native-fbsdk 没有正确链接,因此我不得不手动链接它,我可以按照此处提供的精彩步骤进行操作:http: //www.namvo.me/manual -setup-for-facebook-sdk-in-react-native/

于 2017-10-09T15:45:38.317 回答
1

确保下载 FacebookSDK 文件夹并将其保存在您的计算机上 ( https://developers.facebook.com/docs/ios/ )。我通常将它放在 ~/Documents/FacebookSDK 中并从构建设置中引用它。这是除了将 3 个框架文件拖到 Frameworks 文件夹之外。

于 2016-08-16T08:24:44.020 回答