【问题标题】:React Native FBSDK file not found on CI在 CI 上找不到 React Native FBSDK 文件
【发布时间】:2017-01-19 18:33:33
【问题描述】:

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

然后我添加了正确的框架搜索路径~/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/ 的框架,但我似乎无法修复这个未找到的错误。

【问题讨论】:

    标签: react-native react-native-ios react-native-fbsdk fbsdksharekit


    【解决方案1】:

    我在使用 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 会在以下两个之一中查找依赖项 地点:

    • ~/Documents/FacebookSDK
    • $(PROJECT_DIR)/../../../ios/Frameworks

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

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

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

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

    希望这对以后的读者有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      【解决方案3】:

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

      【讨论】:

      • ${HOME}/Documens/FacebookSDK,我猜你的意思是Documents?那个错字可能会让人有点绊倒。
      • 谢谢@Bataleonand
      猜你喜欢
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      相关资源
      最近更新 更多