目錄結構{#directory-structure}
雖然 Tuist 專案通常用來取代 Xcode 專案,但它們並不限於此使用情況。Tuist 專案也可用於產生其他類型的專案,例如 SPM 套件、範本、外掛程式和任務。本文件將說明 Tuist 專案的結構以及如何組織專案。在稍後的章節中,我們將介紹如何定義模板、外掛程式和任務。
標準 Tuist 專案{#standard-tuist-projects}#
Tuist 專案是由 Tuist 產生的最常見的專案類型。 它們可用於建立應用程式、框架和函式庫等。與 Xcode 專案不同,Tuist 專案是以 Swift 定義,這使得它們更靈活、更容易維護。Tuist 專案也更具宣告性,使其更容易理解和推理。以下結構顯示了一個典型的 Tuist 專案,它會產生一個 Xcode 專案:
Tuist.swift
Tuist/
Package.swift
ProjectDescriptionHelpers/
Projects/
App/
Project.swift
Feature/
Project.swift
Workspace.swift
Tuist 目錄: 此目錄有兩個目的。首先,它顯示專案的根目錄在 。這樣就可以建構相對於專案根目錄的路徑,也可以從專案中的任何目錄執行 Tuist 指令。第二,它是下列檔案的容器:
根目錄 :您專案的根目錄,其中也包含
Tuist目錄。Tuist.swift: 此檔案包含 Tuist 的設定,可在所有專案、工作區和環境中共用。例如,它可用於停用自動產生方案,或定義專案的部署目標。Workspace.swift: 此清單代表 Xcode 工作區。它用於將其他專案分組,也可以新增額外的檔案和方案。Project.swift: 此清單代表一個 Xcode 專案。它用於定義作為專案一部分的目標及其相依性。
與上述專案互動時,指令希望在工作目錄或透過--path 旗標指示的目錄中找到Workspace.swift 或Project.swift
檔案。manifest應該在包含Tuist 目錄的目錄或子目錄中,該目錄代表專案的根目錄。
Xcode 工作區允許將專案分割成多個 Xcode 專案,以減少合併衝突的可能性。如果這就是您使用工作區的目的,您在 Tuist 中就不需要它們了。Tuist 自動產生一個工作區,包含一個專案及其依賴的專案。
Swift 套件 {#swift-package-badge-typewarning-textbeta-}#
Tuist 也支援 SPM 套件專案。如果您正在處理 SPM 套件,應該不需要更新任何東西。Tuist 會自動接收您的根Package.swift
,Tuist 的所有功能都會像Project.swift 的清單一樣運作。
要開始使用,請在您的 SPM 套件中執行tuist install 和tuist generate 。現在,您的專案應該擁有所有與您在 vanilla
Xcode SPM 整合中看到的相同方案與檔案。不過,現在您也可以執行
並預先編譯大部分的 SPM 依賴項目與模組,讓後續的建置速度極快。