升级到Xcode 10后构建错误:找不到FBSDKShareKit.h文件

9

我正在使用React Native构建一个应用程序,该应用程序使用FBSDK(react-native-fbsdk)。整个过程没有问题,但是在我将Xcode从9.4更新到10.0之后,由于错误,我无法再构建项目:

'FBSDKShareKit / FBSDKShareKit.h'文件未找到

我发现有很多类似的问题并尝试了他们的建议,但仍然无法成功构建。我尝试的事情:

  1. 将“〜/文稿/FacebookSDK”添加到Framework Search Path中
  2. 确保FBSDK [Core,Share,Login] Kit.framework和libRCTFBSDK.a在Link Binary with Libraries中
  3. 使用“rm-rf 〜/Library/Developer/Xcode/DerivedData”来清除数据,然后尝试再次构建
  4. 从FacebookSDK文件夹中删除框架,然后再添加它们

到此为止,我不确定还应该尝试什么。最奇怪的是,在更新Xcode之前它可以工作,那么这是否意味着Xcode本身有所改变导致了这个问题?有人对此有任何想法或面临这个问题吗?

编辑: 通过将构建系统从新构建系统更改为旧构建系统,我已经成功构建了项目。现在应用程序正在运行(也许现在Xcode构建项目的方式发生了变化,与当前fbsdk不兼容?)


3
很遗憾,似乎这个方法也不起作用。只有在将“Build System”选项更改为“Legacy Build System”之后,我才成功地构建了它。 - rabbit87
@rabbit87 我在更新Xcode后也遇到了同样的问题。 - khalid
@khalid,你尝试过像我写的那样更改构建系统吗?这样做可以让你构建成功吗? - rabbit87
将构建系统更改为传统的是我唯一有效的解决方法。 - Arnaud Moret
更改构建系统的选项在哪里?我似乎找不到它在首选项或构建设置中...? - anthonyhumphreys
显示剩余2条评论
3个回答

10

我成功将项目构建起来了,方法是将构建系统设置为新的构建系统,并添加以下内容到RCTFBSDK(目标)框架搜索路径中:

$(PROJECT_DIR)/../../../ios

我的猜测是,由于.frameworks文件位于ios文件夹而不是ios/Frameworks文件夹中,所以项目无法找到必要的文件。(为什么如果我使用Legacy Build System就能工作仍然是个谜)。

我已在模拟器和设备上进行了测试,两者都似乎正常工作。


1
是的,我已经在ios文件夹中创建了一个名为“Frameworks”的文件夹,并移动了所有fdsdk文件。现在它可以使用新的构建系统了。 - khalid
终于找到了答案,我尝试了所有可能的方法,这帮了我!谢谢! - Nikita Stelmaschenko

4

对我有用的方法:

我在ios文件夹中创建了一个Frameworks文件夹,并将所有fdsdk文件移动到其中。

然后,我需要从“链接二进制文件”(您可以在项目中访问它,然后构建Phases)中删除FBSDK [Core、Share、Login] Kit.framework和libRCTFBSDK.a,然后再次从Frameworks文件夹添加3个FBSDK [Core、Share、Login] Kit.framework + libRCTFBSDK.a。

我清理了derivedData文件夹。

rm -rf ~/Library/Developer/Xcode/DerivedData

使用新的构建系统成功构建。

希望这能帮助其他人。

感谢@rabbit87和@kalid提供的帮助。


0
对于仍然遇到这个问题的任何人,我成功解决的方法不仅是您必须从主项目更改Framework Search Paths,而且您还必须从位于Libraries文件夹中的RCTFBSDK.xcodeproj本身更改路径。enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接