目录
Tuist 在系统上跨多个目录组织其文件,遵循 XDG Base Directory Specification。这提供了一种干净、标准的方式来管理配置、缓存和状态文件。
支持的环境变量
Section titled “支持的环境变量”Tuist 支持标准 XDG 变量和 Tuist 特定前缀变体。Tuist 特定变体(以 TUIST_ 为前缀)优先,允许你单独为 Tuist 配置,而不是其他应用程序。
环境变量:
TUIST_XDG_CONFIG_HOME(优先)XDG_CONFIG_HOME
默认: ~/.config/tuist
用于:
- 服务器凭证(
credentials/{host}.json)
示例:
# 设置 Tuist 特定配置目录export TUIST_XDG_CONFIG_HOME=/custom/configtuist auth login
# 或使用标准 XDG 变量export XDG_CONFIG_HOME=/custom/configtuist auth login环境变量:
TUIST_XDG_CACHE_HOME(优先)XDG_CACHE_HOME
默认: ~/.cache/tuist
用于:
- 插件:下载并编译的插件缓存
- ProjectDescriptionHelpers:编译的项目描述助手
- Manifests:缓存的清单文件
- Projects:生成的自动化项目缓存
- EditProjects:编辑命令的缓存
- Runs:测试和构建运行分析数据
- Binaries:构建产物二进制文件(不可跨环境共享)
- SelectiveTests:选择性测试缓存
示例:
# 设置 Tuist 特定缓存目录export TUIST_XDG_CACHE_HOME=/tmp/tuist-cachetuist cache
# 或使用标准 XDG 变量export XDG_CACHE_HOME=/tmp/cachetuist cache环境变量:
TUIST_XDG_STATE_HOME(优先)XDG_STATE_HOME
默认: ~/.local/state/tuist
用于:
- 日志:日志文件(
logs/{uuid}.log) - 锁:认证锁文件(
{handle}.sock)
示例:
# 设置 Tuist 特定状态目录export TUIST_XDG_STATE_HOME=/var/log/tuisttuist generate
# 或使用标准 XDG 变量export XDG_STATE_HOME=/var/logtuist generate在确定使用哪个目录时,Tuist 按以下顺序检查环境变量:
- Tuist 特定变量(如
TUIST_XDG_CONFIG_HOME) - 标准 XDG 变量(如
XDG_CONFIG_HOME) - 默认位置(如
~/.config/tuist)
这允许你:
- 使用标准 XDG 变量保持所有应用程序的一致性
- 当你需要为 Tuist 使用不同位置时,用 Tuist 特定变量覆盖
- 依赖合理的默认值而无需任何配置
为每个项目隔离 Tuist
Section titled “为每个项目隔离 Tuist”你可能希望为每个项目隔离 Tuist 的缓存和状态:
# 在你项目的 .envrc 中(使用 direnv)export TUIST_XDG_CACHE_HOME="$PWD/.tuist/cache"export TUIST_XDG_STATE_HOME="$PWD/.tuist/state"export TUIST_XDG_CONFIG_HOME="$PWD/.tuist/config"CI/CD 环境
Section titled “CI/CD 环境”在 CI 环境中,你可能想使用临时目录:
# GitHub Actions 示例env: TUIST_XDG_CACHE_HOME: /tmp/tuist-cache TUIST_XDG_STATE_HOME: /tmp/tuist-state
jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v4 - run: tuist generate - name: Upload logs if: failure() uses: actions/upload-artifact@v4 with: name: tuist-logs path: /tmp/tuist-state/logs/*.log使用隔离目录进行调试
Section titled “使用隔离目录进行调试”调试问题时,你可能需要干净的起点:
# 创建临时目录用于调试export TUIST_XDG_CACHE_HOME=$(mktemp -d)export TUIST_XDG_STATE_HOME=$(mktemp -d)export TUIST_XDG_CONFIG_HOME=$(mktemp -d)
# 运行 Tuist 命令tuist generate
# 完成后清理rm -rf $TUIST_XDG_CACHE_HOME $TUIST_XDG_STATE_HOME $TUIST_XDG_CONFIG_HOME