清单文件
Tuist 默认使用 Swift 文件作为定义项目和工作空间以及配置生成过程的主要方式。这些文件在文档中被称为清单文件。
使用 Swift 的决定受到了 Swift Package Manager 的启发,它也使用 Swift 文件来定义包。由于使用了 Swift,我们可以利用编译器来验证内容的正确性,并在不同的清单文件中重用代码,同时利用 Xcode 的语法高亮、自动补全和验证功能提供一流编辑体验。
Project.swift
Section titled “Project.swift”Project.swift 清单声明了一个 Xcode 项目。该项目在与清单文件相同的目录中生成,名称由 name 属性指定。
let project = Project( name: "App", targets: [ // .... ])Workspace.swift
Section titled “Workspace.swift”默认情况下,Tuist 会生成一个包含正在生成的项目及其依赖项目的 Xcode 工作空间。如果出于任何原因你想自定义工作空间以添加额外的项目或包含文件和组,可以通过定义 Workspace.swift 清单来实现。
import ProjectDescription
let workspace = Workspace( name: "App-Workspace", projects: [ "./App", // 包含 Project.swift 文件的目录路径 ])多项目或单项目
Section titled “多项目或单项目”一个常见的问题是应该使用工作空间中的单个项目还是多个项目。在没有 Tuist 的世界里,单项目设置会导致频繁的 Git 冲突,因此鼓励使用工作空间。然而,由于我们不建议将 Tuist 生成的 Xcode 项目包含在 Git 仓库中,Git 冲突不是问题。因此,使用工作空间中的单个项目还是多个项目取决于你自己。
在 Tuist 项目中,我们倾向于使用单项目,因为冷启动生成时间更快(需要编译的清单文件更少),并且我们使用
Tuist.swift
Section titled “Tuist.swift”Tuist 提供Tuist.swift 来自定义配置,Tuist 用它来确定项目的根目录。
import ProjectDescription
let tuist = Tuist( project: .tuist(generationOptions: .options(enforceExplicitDependencies: true)))