Skip to content

Translation 🌍

You can translate or improve the translation of this page.

Contribute

目录结构

尽管 Tuist 项目通常用于取代 Xcode 项目,但它们并不局限于这种使用情况。Tuist 项目还可用于生成其他类型的项目,如 SPM 包、模板、插件和任务。本文档将介绍 Tuist 项目的结构以及如何组织这些项目。在后面的章节中,我们将介绍如何定义模板、插件和任务。

标准图易斯特项目

Tuist 项目是Tuist 生成的最常见的项目类型。 它们用于构建应用程序、框架和库等。与 Xcode 项目不同,Tuist 项目是用 Swift 定义的,这使得它们更加灵活、更易于维护。Tuist 项目也更具声明性,因此更易于理解和推理。以下结构显示了生成 Xcode 项目的典型 Tuist 项目:

bash
Tuist.swift
Tuist/
  Package.swift
  ProjectDescriptionHelpers/
Projects/
  App/
    Project.swift
  Feature/
    Project.swift
Workspace.swift
  • Tuist 目录: 该目录有两个目的。首先,它是项目根目录的信号 。这样就可以构建相对于项目根目录的路径,也可以从项目中的任何目录运行 Tuist 命令。其次,它是以下文件的容器:

    • ProjectDescriptionHelpers: 该目录包含所有清单文件共享的 Swift 代码。清单文件可以导入 ProjectDescriptionHelpers ,以使用该目录中定义的代码。共享代码有助于避免重复并确保各项目之间的一致性。
    • Package.swift: 该文件包含 Swift 软件包依赖项,以便 Tuist 使用可配置和优化的 Xcode 项目和目标(如 CocoaPods)对其进行集成。了解更多信息,请点击这里
  • 根目录 :项目根目录,其中还包含Tuist 目录。

    • 该文件包含Tuist 的配置,可在所有项目、工作区和环境中共享。例如,它可用于禁用方案的自动生成,或定义项目的部署目标。
    • 此清单表示Xcode 工作区。它用于对其他项目进行分组,也可添加其他文件和方案。
    • 此清单代表一个Xcode 项目。它用于定义项目中的目标及其依赖关系。

与上述项目交互时,命令希望在工作目录或通过--path 标志指示的目录中找到Workspace.swiftProject.swift 文件。清单应位于包含Tuist 目录(代表项目根目录)的目录或子目录中。

TIP

Xcode 工作区允许将项目拆分成多个 Xcode 项目,以减少合并冲突的可能性。如果这正是您使用工作区的目的,那么在 Tuist 中您就不需要它们了。Tuist 会自动生成一个工作区,其中包含一个项目及其依赖项目。

Swift 软件包 beta

Tuist 还支持 SPM 软件包项目。如果您正在开发 SPM 软件包,则无需更新任何内容。Tuist 会自动获取您的根Package.swift ,Tuist 的所有功能都会像Project.swift 清单一样工作。

要开始使用,请在您的 SPM 包中运行tuist installtuist generate 。现在,您的项目应该拥有与 Xcode SPM 集成中相同的方案和文件。不过,现在您还可以运行 tuist cache 并对大部分 SPM 依赖项和模块进行预编译,从而使后续的编译速度极快。

Released under the MIT License.