gpt4 book ai didi

ios - "Defines Module = Yes"测试项目的行为

转载 作者:行者123 更新时间:2023-12-03 22:45:33 30 4
gpt4 key购买 nike

我的 Swift/Obj-C 混合项目设置有两个目标:MyProjectMyProjectTests为了编写单元测试(使用 XCTest ),我对主要目标( MyProject )build设置进行了以下配置:

Enable testability = Yes
Defines module = Yes
这很好,但我想知道当我指定 Defines module = Yes 时实际发生了什么.
是否指定 Defines module = Yes意思是:
  • 为目标创建了一个框架,或者至少是一个模块映射,还是为目标创建了一个总括标题?
  • 如果是这种情况,即至少会生成临时构建文件以使主要目标看起来像一个模块,那么它们通常位于哪里?在 DerivedData ?

  • 或者 Xcode 是否对主要项目目标进行了一些特殊处理,例如打开 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/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com