我已经安装了 FBSDKCoreKit , FBSDKLoginKit 和 FBSDKShareKit ,将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/
中的框架,但我似乎无法修复此未找到的错误。
答案 0 :(得分: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将在两个中的一个中查找依赖项 位置:
- 〜/ Documents / FacebookSDK
- $(PROJECT_DIR)/../../../ ios / Frameworks
第二个选项是持续集成系统的正确选项 像Buddybuild。换句话说,你必须放置你的FBSDK " ios / Frameworks"下的依赖关系文件夹,以使其工作 在持续集成系统上。
问题是,由于Viktor指出CI系统没有引用包含所需框架的FacebookSDK
文件夹,因此您需要将框架本身实际复制到项目本身中,以便一切都包含在您的存储库中。这是必要的,因为RCTFBSDK
库希望在项目中的文件夹$PROJECT_ROOT/ios/Frameworks
中找到它所需的框架(请参阅BuddyBuild文档),如果它们在其他任何地方都会发现它会变得怪异出。
为清楚起见,我为使构建工作而采取的步骤是:
$PROJECT_ROOT/ios/Frameworks
(Frameworks
可能尚不存在)~/Documents/FacebookSDK
复制到此新文件夹希望这对未来的读者有所帮助。
答案 1 :(得分:1)
请参阅:https://discuss.bitrise.io/t/build-failing-with-file-not-found-fbsdk-in-ios-build/399/11
您的Mac上的FacebookSDK
似乎在~/Documents/FacebookSDK
,但您不能在bitrise.io上下载,因此它根本无法用于您的建立。
答案 2 :(得分:1)
我在Bitrise中使用ZIP Unarchive步骤,其路径如下:~/Documents/FacebookSDK
,但我无法使其正常工作。
当我将框架搜索路径更改为${HOME}/Documents/FacebookSDK
时,我就能够成功继续进行构建。