server/priv/docs/zh_Hans/guides/features/projects/best-practices.md
在多年与不同团队和项目的合作中,我们总结出了一套最佳实践,建议您在使用 Tuist 和 Xcode 项目时加以遵循。这些实践并不是强制性的,但它们可以帮助您以更易于维护和扩展的方式构建项目。
许多组织使用构建配置来模拟不同的远程环境(如Debug-Production 或Release-Canary ),但这种方法有一些缺点:
构建配置是为了体现不同的构建设置而设计的,项目需要的配置很少超过Debug 和Release 。模拟不同环境的需求可以通过不同方式实现:
信息 非标准配置
<!-- -->Tuist 支持非标准配置,与普通 Xcode 项目相比更易于管理,但如果整个依赖关系图中的配置不一致,您将收到警告。这有助于确保构建的可靠性,并防止出现与配置相关的问题。
<!-- -->:::
Tuist 4.62.0 添加了对可构建文件夹 (Xcode 的同步组)的支持,该功能在 Xcode 16 中引入,以减少合并冲突。
Tuist 的通配符模式(如Sources/**/*.swift )已经消除了生成项目中的合并冲突,而可构建文件夹则提供了额外的好处:
我们建议采用可构建文件夹,而不是传统的Target.sources 和Target.resources 属性,以获得更简化的开发体验。
代码组
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
尤为重要,因为可重现的构建至关重要。