【问题标题】:Xcode is ignoring the bridging header fileXcode 忽略了桥接头文件
【发布时间】:2018-09-26 08:03:56
【问题描述】:

使用 Xcode 9 和 Swift 4,我创建了一个桥接头文件以利用外部框架,但无论我做什么,Xcode 都会忽略桥接头文件。我按照我在网上找到的步骤进行操作,我不知道该项目有什么问题。我附上了一张图片,由于头文件中有无效字符,这不应该给我一个编译错误吗?

Click to see Xcode project image

这不是重复的问题,建议的问题由于编译错误而导致头文件工作存在问题,在我的情况下编译成功并且 Xcode 甚至没有尝试编译头文件。

我从头开始创建了另一个项目,并且能够使桥接头工作,所以我猜这个项目有问题。我创建了这个项目,然后再试一次。

【问题讨论】:

  • 您想查看错误或桥接您的项目吗?您是否尝试过导入您的库以查看它是否有效?
  • 尝试清除派生数据,清理项目,关闭xCode,再次启动
  • 清除了派生数据,清理了项目并重新启动了Xcode,即使桥文件有错误的内容,也可以构建成功。当我将正确的导入添加到桥接头中时,我无法在 Swift 中使用它,它显示未声明的类型,这就是为什么我认为 Xcode 出于某种原因根本不使用桥接头文件的原因。我尝试的另一件事是,我将构建设置中的文件更改为损坏的路径,Xcode 仍然成功构建。
  • 你的桥接头是 Xcode 自动生成的,还是你自己创建的?
  • 我尝试了两种方式,自动和手动,结果是一样的。

标签: ios objective-c swift bridging-header


【解决方案1】:
Project > Build Settings > SWIFT_OBJC_BRIDGING_HEADER

您是否在此处指定了桥接头文件名?

【讨论】:

  • 我刚刚添加到Project -> Build Settings以及Target -> Build Settings,清理了项目,结果是一样的
【解决方案2】:

通过先清理 (Command + K) 然后构建 (Command + B) 来执行干净的构建。

遇到了同样的问题,这解决了它。

【讨论】:

    【解决方案3】:

    正如 Biju 所说,指定桥接头文件名 - 尝试更改其位置(例如,将其放在项目文件夹中)

    【讨论】:

      【解决方案4】:

      我发现创建objective-c文件而不是直接创建头文件更方便。

      您可以尝试创建一个虚拟的objective-c 文件。

      从 Xcode 的文件菜单中单击 File-> New-> File。选择Objective-C File并点击next按钮。

      你可以给任何你想要的假名。我给的名字是DummyFile

      点击Next

      现在将此文件保存在项目目录中。

      由于 Xcode 即将将此 Objective-C 文件添加到您的 Swift 项目中,因此会自动要求您创建一个 Bridging Header,如下所示。

      [

      当您点击Create Bridging Header 时,Xcode 会创建一个Brigder-Bridging-Header.h 文件(因为我的项目名称是“Bridger”)并将其放在项目的目录中,如 Xcode 的项目导航盘所示。

      .

      现在您可以导入您希望向 Swift 公开的目标的公共标头。

      您现在可以根据需要从项目目录中删除 DummyFile.m

      这应该会如愿以偿。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-09
        • 2019-02-04
        • 1970-01-01
        • 1970-01-01
        • 2016-06-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多