【发布时间】:2017-08-24 06:50:15
【问题描述】:
我将 Xcode 更新到版本 8.3 (8E162) 并且在我的单元测试文件中我有这个警告:
通过隐式导入桥接头“myframe-Bridging-Header.h” 模块“myframe”已弃用,将在以后的版本中删除 斯威夫特的
在这一行:
@testable import myframe
如何解决这个警告?
【问题讨论】:
我将 Xcode 更新到版本 8.3 (8E162) 并且在我的单元测试文件中我有这个警告:
通过隐式导入桥接头“myframe-Bridging-Header.h” 模块“myframe”已弃用,将在以后的版本中删除 斯威夫特的
在这一行:
@testable import myframe
如何解决这个警告?
【问题讨论】:
那篇文章帮助我修复了警告:https://bugs.swift.org/browse/SR-3801
我选择了:
通过将#import "App-Bridging-Header.h" 添加到任何 您拥有的现有单元测试桥接头
【讨论】:
所以它与那条线本身无关(这让我陷入了循环),你不应该改变它。发生的情况是@testable import 通常也会自动导入模块桥接头,但现在不再这样了。
就像SR-3801 说的解决方案是:
- 将 App 桥接头显式导入到您的单元测试中(通过构建设置)或
- 通过将#import "App-Bridging-Header.h" 添加到您拥有的任何现有单元测试桥接头中来链接导入
我已经有一个Test-Bridging-Header.h,我在其中添加了#import "MODULE-Bridging-Header.h",作为我认为更可取的解决方案2 的一部分。现在模块桥接头中的测试桥接头链和警告消失了。
【讨论】:
有点不同的情况(框架和没有单元测试):
我有一个结合了 Swift 和 ObjC 的项目(这意味着我已经有了一个桥头文件)。项目嵌入了第 3 方框架。在添加框架时产生了警告(对他们的桥头大喊大叫)。我刚刚在我现有的桥头文件中导入了他们的标题:
#import <ThirdPartyFramework/ThirdPartyFramework-Bridging-Header.h>
并且警告被禁止。
Xcode 9.4.1 斯威夫特 4.1
【讨论】: