构建错误:升级到 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 文件的主要内容,如果未能解决你的问题,请参考以下文章
ld:通过 cocoapods 从 4.x.x 升级到 5.x.x firebase 后找不到框架 FirebaseAnalytics