# Кэш Xcode {#xcode-cache}
Tuist обеспечивает поддержку кэша компиляции Xcode, что позволяет командам
обмениваться артефактами компиляции, используя возможности кэширования системы
сборки.
## Настройка {#setup}
::: предупреждение РЕКВИЗИТЫ
- A Туистский счет и проект
- Xcode 26.0 или более поздняя версия
:::
Если у вас еще нет учетной записи Tuist и проекта, вы можете создать их,
выполнив команду:
```bash
tuist init
```
Когда у вас есть файл `Tuist.swift`, ссылающийся на ваш `fullHandle`, вы можете
настроить кэширование для своего проекта, выполнив команду:
```bash
tuist setup cache
```
Эта команда создает
[LaunchAgent](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html)
для запуска локальной службы кэширования при запуске, которую [система сборки
Swift](https://github.com/swiftlang/swift-build) использует для обмена
артефактами компиляции. Эту команду нужно выполнить один раз в локальной и
CI-средах.
Чтобы настроить кэш на CI, убедитесь, что вы прошли
аутентификацию.
### Настройка параметров сборки Xcode {#configure-xcode-build-settings}
Добавьте следующие настройки сборки в свой проект 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:
::: info 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=YES
```
::: info GENERATED PROJECTS
Задавать настройки вручную не нужно, если ваш проект сгенерирован Tuist.
В этом случае достаточно добавить `enableCaching: true` в файл `Tuist.swift`:
```swift
import ProjectDescription
let tuist = Tuist(
fullHandle: "your-org/your-project",
project: .tuist(
generationOptions: .options(
enableCaching: true
)
)
)
```
:::
### Непрерывная интеграция {#continuous-integration}
Чтобы включить кэширование в среде 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
```