Xcode 缓存
Tuist 支持 Xcode 的编译缓存,允许团队利用构建系统的缓存功能共享编译工件。
设置
警告要求
- 图斯特账户和项目
- Xcode 26.0 或更高版本
:::
如果您还没有 Tuist 帐户和项目,可以通过运行来创建:
bash
tuist init一旦有了引用fullHandle 的Tuist.swift 文件,就可以通过运行为项目设置缓存:
bash
tuist setup cache该命令创建一个 LaunchAgent 以在启动时运行本地缓存服务,Swift build system 会使用该服务共享编译工件。此命令需要在本地和 CI 环境中运行一次。
要在 CI 上设置缓存,请确保您已通过
验证。配置 Xcode 构建设置
将以下构建设置添加到您的 Xcode 项目中:
COMPILATION_CACHE_ENABLE_CACHING = YES
COMPILATION_CACHE_REMOTE_SERVICE_PATH = $HOME/.local/state/tuist/your_org_your_project.sock
COMPILATION_CACHE_ENABLE_PLUGIN = YES
COMPILATION_CACHE_ENABLE_DIAGNOSTIC_REMARKS = YES请注意,COMPILATION_CACHE_REMOTE_SERVICE_PATH 和COMPILATION_CACHE_ENABLE_PLUGIN 需要添加为用户自定义的构建设置 ,因为它们没有直接暴露在 Xcode 的构建设置 UI 中:
SOCKET PATH
运行tuist setup cache 时将显示套接字路径。它基于项目的完整句柄,下划线替换了斜线。
您也可以在运行xcodebuild 时指定这些设置,方法是添加以下标志,如
xcodebuild build -project YourProject.xcodeproj -scheme YourScheme \
COMPILATION_CACHE_ENABLE_CACHING=YES \
COMPILATION_CACHE_REMOTE_SERVICE_PATH=$HOME/.local/state/tuist/your_org_your_project.sock \
COMPILATION_CACHE_ENABLE_PLUGIN=YES \
COMPILATION_CACHE_ENABLE_DIAGNOSTIC_REMARKS=YESGENERATED PROJECTS
如果项目由 Tuist 生成,则无需手动设置。
在这种情况下,只需在Tuist.swift 文件中添加enableCaching: true 即可:
swift
import ProjectDescription
let tuist = Tuist(
fullHandle: "your-org/your-project",
project: .tuist(
generationOptions: .options(
enableCaching: true
)
)
)持续集成 #
要在 CI 环境中启用缓存,需要运行与本地环境相同的命令:tuist setup cache 。
此外,您还需要确保TUIST_TOKEN 环境变量已设置。您可以根据此处的文档
创建一个环境变量。_ TUIST_TOKEN 环境变量_必须在构建步骤中存在,但我们建议在整个 CI 工作流程中都设置它。
GitHub 操作的工作流程示例如下:
yaml
name: Build
env:
TUIST_TOKEN: ${{ secrets.TUIST_TOKEN }}
jobs:
build:
steps:
- # Your set up steps...
- name: Set up Tuist Cache
run: tuist setup cache
- # Your build steps