在CI上找不到React Native FBSDK文件



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

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

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

/Users/floatint/git/node_modules/areact native fbsdk/ios/RCTFBSDK/share/RCTFBSDKShareDialog.h:21:9:找不到"FBSDKShareKit/FBSDKShareKit.h"文件

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

我使用BuddyBuild(另一个CI系统)遇到了这个问题,并通过此处文档页面上链接的说明解决了这个问题http://docs.buddybuild.com/docs/common-react-native-errors#section-错误-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/框架

第二个选项是连续集成系统的正确选项比如Buddybuild。换句话说,你必须放置你的FBSDK";ios/Frameworks";文件夹以便其工作关于持续集成系统。

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

为了清晰起见,我采取的步骤是:

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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新