Xcode 8.3 中的警告 'myframe-Bridging-Header.h'

Warning 'myframe-Bridging-Header.h' in Xcode 8.3

我已将 Xcode 更新到版本 8.3 (8E162),并且在我的单元测试文件中出现以下警告:

Implicit import of bridging header 'myframe-Bridging-Header.h' via module 'myframe' is deprecated and will be removed in a later version of Swift

这一行:

@testable import myframe

如何修复此警告?

那篇文章帮助我修复了警告:https://bugs.swift.org/browse/SR-3801

我选择了:

chain the import by adding #import "App-Bridging-Header.h" to any existing unit test bridging header you have

因此它与该行本身无关(这让我陷入了循环)并且您不应该更改它。发生的事情是,@testable import 通常也会自动导入模块桥接 header,但现在不会了。

就像SR-3801说的解决方案是:

  1. explicitly import the App bridging header into your unit tests (via a build setting) or
  2. chain the import by adding #import "App-Bridging-Header.h" to any existing unit test bridging header you have

我已经有一个 Test-Bridging-Header.h,我在其中添加了 #import "MODULE-Bridging-Header.h" 作为解决方案 2 的一部分,我认为这是更可取的。现在,测试桥接 header 链接在模块桥接 header 中,警告消失。

有点不同的情况(框架和没有 unit-test):

我有一个结合 Swift 和 ObjC 的项目(意思是我已经有一个 bridge-header)。项目嵌入了第 3 方框架。添加框架时发出警告(在他们的桥上大喊 header)。我刚刚将他们的 header 导入到我现有的 bridge-header:

#import <ThirdPartyFramework/ThirdPartyFramework-Bridging-Header.h>

并抑制警告。

Xcode 9.4.1 Swift4.1