【问题标题】:Failed to Import Bridging Header Error无法导入桥接头错误
【发布时间】:2015-09-14 15:23:41
【问题描述】:

我在安装和卸载 cocoapods 时不小心弄乱了我的项目设置。我现在收到错误“无法导入桥接头”。我检查了我的构建设置和构建设置>代码生成>objective-c桥接头下的文件路径是否正确。我在构建设置中弄乱了我的框架搜索路径(它们现在是空的),同时试图让 cocoapods 工作。非常感谢您对解决此桥接头问题的帮助。

【问题讨论】:

  • 你能发布完整的编译器错误吗?
  • 如果您删除桥接头并让 Xcode 通过尝试将 Objective-C 文件拖到文件导航器中来生成新的桥接头会发生什么?
  • 这是完整的编译器错误:/Users/xyz123/Documents/Apps/Backups/MostRecentAppName/AppName/Facebook-Bridging-Header.h:11:9: error: 'FacebookSDK/FacebookSDK.h'找不到文件#import ^ :0:错误:无法导入桥接头“/Users/xyz123/Documents/Apps/Backups/MostRecentAppName/AppName/Facebook-Bridging-Header.h”
  • 当您第一次尝试创建或拖入目标 c 文件到项目时,xcode 会自动生成一个桥接头。它现在没有这样做,因为这不是我第一次参与这个项目.
  • 我遇到了同样的错误。

标签: ios objective-c swift xcode6 bridging-header


【解决方案1】:

听起来像空的标题搜索路径可能是导致您的问题的原因。 尝试将 $(inherited) 添加到 Build Settings 的 Header Search Paths 列表中。它将确保正在使用 pods xcconfig 文件中设置的标头搜索路径。

【讨论】:

  • 我刚刚检查过并且 $(inherited) 已经存在。还有其他建议吗?
  • @xyz123 你说搜索路径是空的,所以我认为这是问题所在。除了 $(inherited) 之外,您可能在搜索路径中遗漏了其他内容。此外,您可以尝试从头开始重新创建桥接头,确保一切都有效。
  • 我已经尝试过了,但它不起作用。我应该在搜索路径中有什么?
  • @xyz123 我不知道搜索路径是否是这里的问题。如前所述,我提到它是因为最初您写道它都是空的。
  • 我的搜索路径似乎是正确的(我与正在运行的旧项目进行比较),但我仍然收到错误消息。它还说未找到 。还有什么建议吗?
【解决方案2】:

在 XCODE 中搜索标头,查看桥标头是否仍然“存在”,如果是,请单击它以显示在框架中....然后查看 facebook sdk #import 语句是否仍然存在,如果不添加它。

如果搜索后找不到头文件...单击文件和“添加文件,看看是否可以找到 -Header.h 那里,如果可以,请将其添加回您的项目,如果没有,请转到再次构建设置并“清除”标题的路径,保存您的项目,关闭它,重新打开它,然后尝试添加一个 C 文件并查看该文件是否会重新生成,然后您可以重新添加对 #import 的调用 脸书SDK

另一件事是您可以检查以确保将 FBSDKcoreKit.framework 放回目标的构建阶段,并在与库的链接二进制文件下

编辑您的回复:

在您的搜索路径中,如果您没有 $(PROJECT_DIR)/yourprojectname,您还应该在 $(inherited) 下方有以下 $(PROJECT_DIR)/yourprojectname,它会给出您提到的错误,因为我已经复制了它从框架搜索路径中删除它

我还不能发布图片,或者我会作为参考

【讨论】:

  • 当我这样做时会显示标题,并且导入语句就在那里。 fbsdkcorekit.framework 处于构建阶段
  • 在您的搜索路径中,如果您没有 $(PROJECT_DIR)/yourprojectname,您还应该在 $(inherited) 下方有以下 $(PROJECT_DIR)/yourprojectname 它会给您您提到的错误我已经通过从框架搜索路径中删除它来复制它
  • 我解决了这个问题,但我仍然遇到同样的错误。当我转到桥接头文件时,我还收到一条错误消息,提示 未找到。还有什么建议吗?
  • 此时听起来框架文件已损坏或您的路径不正确。我会三重确保路径正确,即:检查一个简单的错字,然后删除框架并尝试框架 SDK 的新副本。否则,从您所说的来看,它应该可以找到文件。
  • 如果可以的话,也许您的文件结构和构建阶段/设置屏幕的屏幕截图会有所帮助。现在真的只是抓住稻草
【解决方案3】:

我希望您已经设法自己找到了解决方案。我今天遇到了这个问题,试图在不使用 cocoapods 的情况下将框架实现到项目中。该框架只是不会被 xcode 识别。我解决这个问题的方法是:


  1. 我在 xCode 6.4 中创建了一个空白项目,然后按照步骤在 swift 项目中正常添加框架。正如预期的那样,该框架与 Objective C Bridging Header 完美结合,因为该框架位于 Objective-C 中。

  2. 然后我对 xCode 7 beta 3 做了同样的事情。由于这个错误,它没有工作。

  3. 然后我进入 xCode 6.4 项目并查看目标 -> 构建设置 -> 搜索路径,并查看了框架路径和标题路径的内容。

  4. 然后我又去了同一个地方和xCode 7,发现那里完全是空的。

  5. 然后我只需要复制写在 xCode 6.4 上的路径,并使其适应 xCode-beta 路径。您可以通过在 finder 打开以搜索路径时键入 Command + Shift + G 在 finder 上查找路径。然后为您的 xCode beta 和 xCode 6.4 路径测试它,看看您是否走在正确的道路上。

  6. 清理并构建您的项目并检查桥接头是否正常工作。

【讨论】:

    【解决方案4】:

    如果您添加一个用 Swift 编写的 pod,但您不包含“use_frameworks!”在您的 Podfile 中,您的 pod 不会安装,您将收到此错误。包括“use_frameworks!”在 Podfile 中并再次安装 pod。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 2017-01-20
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多