我的 Swift/Obj-C 混合项目设置有两个目标:MyProject
和 MyProjectTests
为了编写单元测试(使用 XCTest
),我对主要目标( MyProject
)build设置进行了以下配置:
Enable testability = Yes
Defines module = Yes
这很好,但我想知道当我指定 Defines module = Yes
时实际发生了什么.是否指定
Defines module = Yes
意思是:DerivedData
? Defines Module = Yes
flag 在文件系统方面没有任何作用,但仍允许将主项目目标作为(可测试的)模块导入测试目标中? 最佳答案
让应用同时使用 Swift 和 Objective-C,可能是一个微妙的过程。如果你想要一个混合项目,你必须采用模块。将旧的 Objective-C 代码引入 Swift 项目时,这意味着将“定义模块”(DEFINES_MODULE
)build设置设置为 YES
在框架目标中。这指示 Xcode 安装 module.modulemap
文件(可能是 module.private.modulemap
)在框架中的标题旁边。 Objective-C 框架需要定义一个模块供 Swift 使用。
来源:Big Nerd Ranch
关于ios - "Defines Module = Yes"测试项目的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51927138/