Xcode 不会自动创建桥接 header?

Xcode not automatically creating bridging header?

我将一个 Obj-C 文件导入到我的 swift 项目中,Xcode 自动提示我按预期创建桥接 header 文件。但是,我删除了这两个文件(移至垃圾箱)以进行一些更改,但是当我尝试再次导入 Obj-C 文件时,提示不再出现。是什么原因?我什至在另一个项目中测试了同样的场景,似乎一旦我删除了 Xcode 的自动创建的桥接 header,它不会再次弹出提示。这是为什么?

查看您的项目设置 -> 构建设置,向下滚动到 User-Defined 部分,查看它是否有名为 SWIFT_OBJC_BRIDGING_HEADER 的键以及它是否有值。如果它在那里,它可能认为您已经有了一个,在这种情况下,只需重新创建同名文件即可。

  1. 桥接文件在一个项目中只提示一次

  2. 如果不小心删除了文件,就得重新建一个bridge文件。一样的

  3. 转到File->New File->Header File,名称必须是YourProjectName-Bridging-Header,否则无法识别。

您的问题的原因是,Xcode 构建设置仍然保留自动生成桥接头文件的路径。由于头文件 (ProjectName-Bridging-Header.h) 仍然存在于您的项目目录中,因此您不会收到任何构建错误。

如何解决:

单击您的项目目标,转到 Build Settings 选项卡 (choose all instead of basic),搜索 Bridging Header。您可以看到 Xcode 生成的路径条目。 Select 然后点击删除按钮。

此外,确保从您的 Xcode 项目目录中删除 Xcode 自动生成的桥接头文件 (ProjectName-Bridging-Header.h)

现在,尝试再次导入 Obj-C 文件。可以看到按预期创建桥接头文件的提示

在 xcode 中创建桥接头的方式与上面的 mention/suggested 不同。在这里,我将向您介绍创建 Bridge 的最佳和最简单的方法。

  1. 图 1 显示当前时间点不存在桥接。

  1. Image2 显示我已经复制了一个包含 objective-c 个头文件的文件夹,复制后屏幕上会出现一个弹出窗口。

  1. Image3 将显示弹出消息。但是在按下完成按钮后,您会注意到仍然没有桥存在。参考图 2.

  1. 现在在 image5&6 中,我只需拖放 objective-c 头文件,之后您会收到弹出消息。

  1. 按下完成按钮后,您会收到类似 Would you like to configure an Objective-C bridging header? 的消息。按下 Yes 按钮后,您会看到桥头,您可以在图 5 中看到它。

如果您想将页眉保留在一个组中,请使用 新组 并将您的文件拖放到该组中。

切勿创建任何文件夹,否则会因此出现错误。

文件 -> 新建文件 -> 头文件

将其另存为 YourApp-Bridging-Header

然后转到 Build Settings,找到 "Objective-C Bridging Header"(如前所述)并传递给您的 Bridging Header 为:YourApp/YourApp-Bridging-Header.h 其中 'YourApp/' 是应用程序的名称.它可以包含白色 space,例如 'Your App/'.

在我的例子中 xCode 7.3.1 有效

  1. 打开xcode项目
  2. 文件 -> 新建 -> 文件 -> 如果你想 .swift 文件然后点击 Swift 文件 .h文件点击头文件 .m 文件 objective c 文件等

如果您想手动配置它,只需转到构建设置并将选择从基本(默认)或自定义更改为全部。

由于隐藏了空白字段以使普通最终用户更容易操作,如果您错过了添加 bridging-header 的提示,您可能很难手动找到它。此外,搜索选项将不包括隐藏字段。

更改为全部和 Swift 编译器 - 常规部分应显示 child 设置 "Objective-C Bridging Header"

处理这个问题大约一个小时后。 我发现真正的问题是文件夹!

从不 Create/Copy 文件夹。

解决问题-

首先创建一个你喜欢的名字的群组。 然后将 Objective-C 个文件复制到组(不是文件夹)中。

那么肯定会提示您创建桥接头文件。