Кэш Xcode
Tuist обеспечивает поддержку кэша компиляции Xcode, что позволяет командам обмениваться артефактами компиляции, используя возможности кэширования системы сборки.
Настройка
::: предупреждение РЕКВИЗИТЫ
- A Туистский счет и проект
- Xcode 26.0 или более поздняя версия
:::
Если у вас еще нет учетной записи Tuist и проекта, вы можете создать их, выполнив команду:
bash
tuist initКогда у вас есть файл Tuist.swift, ссылающийся на ваш fullHandle, вы можете настроить кэширование для своего проекта, выполнив команду:
bash
tuist setup cacheЭта команда создает LaunchAgent для запуска локальной службы кэширования при запуске, которую система сборки Swift использует для обмена артефактами компиляции. Эту команду нужно выполнить один раз в локальной и 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:
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.
В этом случае достаточно добавить enableCaching: true в файл Tuist.swift:
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 Actions может выглядеть следующим образом:
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