1

我已经安装了FBSDKCoreKitFBSDKLoginKitFBSDKShareKit,方法是将 SDK 下载到~/Documents/FacebookSDK然后将框架拖到XCode中的 frameworks 文件夹中。如果需要,我检查了复制文件的选项,以便它们出现在项目中。

然后我添加了正确的框架搜索路径~/Documents/FacebookSDK

在本地构建工作正常,但是,在 Bitrise (CI) 上构建失败并出现错误:

/Users/vagrant/git/node_modules/react-native-fbsdk/ios/RCTFBSDK/share/RCTFBSDKShareDialog.h:21:9: 'FBSDKShareKit/FBSDKShareKit.h' 文件未找到

框架搜索路径还包含$(PROJECT_DIR)应该找到位于其中的框架,appname/Frameworks/但我似乎无法修复这个未找到的错误。

4

3 回答 3

2

我使用 BuddyBuild(另一个 CI 系统)遇到了这个问题,并通过链接在他们的文档页面上的说明解决了这个问题http://docs.buddybuild.com/docs/common-react-native-errors#section-error-fbsdksharekit -fbsdksharekit-h-file-not-found,特别是本节:

错误:找不到“FBSDKShareKit/FBSDKShareKit.h”文件

这通常是由于 FBSDK 依赖项的位置配置不正确的存储库造成的。如果你看看: https ://github.com/facebook/react-native-fbsdk/blob/master/ios/RCTFBSDK.xcodeproj/project.pbxproj

您会注意到 RCTFBSDK 将在以下两个位置之一中查找依赖项:

  • ~/文档/FacebookSDK
  • $(PROJECT_DIR)/../../../ios/Frameworks

第二个选项是 Buddybuild 等持续集成系统的正确选项。换句话说,您必须将 FBSDK 依赖项放在“ios/Frameworks”文件夹下,以便它在持续集成系统上工作。

问题在于,正如 Viktor 指出的那样,CI 系统没有对FacebookSDK包含所需框架的文件夹的引用,因此您需要将框架本身实际复制到项目本身中,以便所有内容都包含在您的存储库中。这是必要的,因为该RCTFBSDK库希望在您的项目中的文件夹中找到它需要的框架$PROJECT_ROOT/ios/Frameworks(请参阅 BuddyBuild 文档),如果它们在其他任何地方,它就会崩溃。

为了清楚起见,我为使构建工作而采取的步骤是:

  • $PROJECT_ROOT/ios/Frameworks在我的项目中创建文件夹(Frameworks可能不存在)
  • 将 Facebook 框架文件复制~/Documents/FacebookSDK到这个新文件夹中
  • 根据 fbsdk Github 页面上的安装说明参考 Xcode 中的框架。

希望这对任何未来的读者有所帮助。

于 2017-06-02T05:31:11.000 回答
1

我在 Bitrise 中使用 ZIP Unarchive 步骤,路径如下:~/Documents/FacebookSDK但我无法使其工作。当我将框架搜索路径更改为时,${HOME}/Documents/FacebookSDK我能够成功地继续构建。

于 2018-08-04T15:36:29.850 回答
1

见:https ://discuss.bitrise.io/t/build-failing-with-file-not-found-fbsdk-in-ios-build/399/11

FacebookSDK您的 Mac 上似乎有~/Documents/FacebookSDK,但您没有在 bitrise.io 上下载它,因此它根本不适用于您的构建。

于 2017-01-23T16:34:46.823 回答