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

Posted

技术标签:

【中文标题】构建错误:升级到 Xcode 10 后找不到 FBSDKShareKit.h 文件【英文标题】:Build error: FBSDKShareKit.h file not found after upgrading to Xcode 10 【发布时间】:2018-09-20 05:14:04 【问题描述】:

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

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

我发现了一些似乎有相同问题的问题,并尝试了他们的建议,但仍然无法成功构建。我尝试过的事情:

    将“~/Documents/FacebookSDK”添加到框架搜索路径 确保 FBSDK[Core, Share, Login]Kit.framework 和 libRCTFBSDK.a 在 Link Binary with Libaries 中 使用“rm -rf ~/Library/Developer/Xcode/DerivedData" 清理数据然后尝试 重新构建 然后从 FacebookSDK 文件夹中删除框架 再次添加它们

在这一点上,我不确定我还应该尝试什么。最奇怪的是它在更新 Xcode 之前就已经工作了,那么这是否意味着 Xcode 本身的变化导致了这种情况?

有人对此有任何想法或遇到过这个问题吗?

编辑: 通过将 Build System 从 New Build System 更改为 Legacy Build System,我成功地构建了该项目。应用程序现在运行(也许 Xcode 构建项目的方式发生了一些变化,现在与当前的 fbsdk 不兼容?)

【问题讨论】:

您可以尝试删除您的 node_modules 文件夹,删除您的 ios/build 文件夹,运行 npm install 并再次构建项目吗? @needsleep 不幸的是,这似乎也不起作用。我只是在将 Build System 选项更改为“Legacy Build System”后才设法构建它 @rabbit87 我在更新 Xcode 后面临同样的问题。 @khalid 你试过像我写的那样改变构建系统吗?这让你可以建造吗? 将构建系统更改为旧版是唯一对我有用的方法。 【参考方案1】:

我终于设法构建项目,同时通过添加将构建系统设置为新构建系统

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

进入 RCTFBSDK 的(目标)框架搜索路径。

我的猜测是;由于 .frameworks 文件位于 ios 文件夹而不是 ios/Frameworks 中,项目找不到必要的文件。 (如果我使用 Legacy Build System 为什么它会起作用对我来说仍然是一个谜)。

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

【讨论】:

是的,我在 ios 文件夹中创建了一个文件夹 Frameworks 并移动了所有 fdsdk 文件。现在它与新构建系统一起工作。 终于我找到了答案,我尝试以所有可能的方式解决这个问题,这对我有帮助!谢谢!【参考方案2】:

什么对我有用:

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

然后我不得不从“Link Binary with Libraries”中删除 FBSDK[Core, Share, Login]Kit.framework 和 libRCTFBSDK.a(您在项目中访问它然后构建阶段)然后添加 3 FBSDK[Core, Share , Login]Kit.framework 再次从Frameworks文件夹+ libRCTFBSDK.a

我清理了 derivedData 文件夹

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

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

希望这对其他人有所帮助。

感谢@rabbit87 和@kalid 的帮助

【讨论】:

【参考方案3】:

对于仍然在这个问题上苦苦挣扎的任何人,对我有用的不仅是您必须从主项目更改框架搜索路径,而且您必须从位于 RCTFBSDK.xcodeproj 本身中更改路径在库文件夹中。

【讨论】:

以上是关于构建错误:升级到 Xcode 10 后找不到 FBSDKShareKit.h 文件的主要内容,如果未能解决你的问题,请参考以下文章

升级到 Xcode 10 后的问题:找不到构建输入文件

ld:通过 cocoapods 从 4.x.x 升级到 5.x.x firebase 后找不到框架 FirebaseAnalytics

升级到节点 7 后找不到模块“内部/fs”

安装新的 xcode 4.3 后找不到 stdio.h

在 Xcode 5 中禁用基本本地化后找不到 MainMenu.xib

webpack升级后找不到命名空间NodeJS