server/priv/docs/zh_Hant/guides/features/projects/best-practices.md
多年來與不同的團隊和專案合作,我們發現了一套最佳實務,建議您在使用 Tuist 和 Xcode 專案時遵循。這些實務並不是強制性的,但它們可以幫助您以更容易維護和擴充的方式來架構專案。
許多組織使用建立組態來模擬不同的遠端環境 (例如Debug-Production 或Release-Canary),但這種方法有一些缺點:
建置配置的設計是為了體現不同的建置設定,專案很少只需要Debug 和Release 。建模不同環境的需求可以用不同的方式來實現:
[!NOTE] Non-standard Configurations
雖然 Tuist 支援非標準的組態,並使它們比起 vanilla Xcode 專案更容易管理,但如果整個相依圖中的組態不一致,您將會收到警告。這有助於確保建立的可靠性,並防止與組態相關的問題。
Tuist 4.62.0 新增了對buildable folders (Xcode 的同步群組) 的支援,這是 Xcode 16 中為了減少合併衝突而引入的功能。
雖然 Tuist 的通配符模式 (例如Sources/**/*.swift) 已經消除了產生專案中的合併衝突,但可建立資料夾提供了額外的好處:
我們建議採用可建立資料夾,取代傳統的Target.sources 和Target.resources 屬性,以獲得更精簡的開發體驗。
::: code-group
let target = Target(
name: "App",
buildableFolders: ["App/Sources", "App/Resources"]
)
let target = Target(
name: "App",
sources: ["App/Sources/**"],
resources: ["App/Resources/**"]
)
:::
在 CI 上安裝 Swift 套件管理員相依性時,我們建議使用--force-resolved-versions 旗標,以確保確定性的建置:
tuist install --force-resolved-versions
此旗標可確保使用Package.resolved 中的精確版本解決相依性,消除相依性解決的非決定性所導致的問題。這在 CI
上尤其重要,因為可重複的建置是非常重要的。