首页 > 解决方案 > 用于测试项目的“定义模块 = 是”的行为

问题描述

我的 Swift/Obj-C 混合项目设置有两个目标:

MyProjectMyProjectTests

为了编写单元测试(使用XCTest),我对主要目标(MyProject)构建设置进行了以下配置:

Enable testability = Yes
Defines module = Yes

这很好用,但我想知道当我指定Defines module = Yes.

指定是否Defines module = Yes意味着:

标签: iosxcode

解决方案


让应用同时使用 Swift 和 Objective-C,可能是一个微妙的过程。如果你想要一个混合项目,你必须采用模块。将旧的 Objective-C 代码引入 Swift 项目时,这意味着在框架目标中设置“定义模块”( DEFINES_MODULE)构建设置。YES这指示 Xcode在框架中的标头旁边安装一个module.modulemap文件(可能还有一个)。module.private.modulemapObjective-C 框架需要定义一个模块供 Swift 使用。

资料来源:大书呆子牧场


推荐阅读