Skip to content

Pamięć podręczna Xcode

Tuist zapewnia obsługę pamięci podręcznej kompilacji Xcode, która umożliwia zespołom udostępnianie artefaktów kompilacji poprzez wykorzystanie możliwości buforowania systemu kompilacji.

Konfiguracja#

::: ostrzeżenie WYMAGANIA

  • Konto i projekt Tuist
  • Xcode 26.0 lub nowszy

:::

Jeśli nie masz jeszcze konta i projektu Tuist, możesz je utworzyć, uruchamiając aplikację:

bash
tuist init

Gdy masz już plik Tuist.swift odwołujący się do twojego fullHandle, możesz skonfigurować buforowanie dla swojego projektu, uruchamiając go:

bash
tuist setup cache

To polecenie tworzy LaunchAgent, aby uruchomić lokalną usługę pamięci podręcznej podczas uruchamiania, której system kompilacji Swift używa do udostępniania artefaktów kompilacji. Polecenie to należy uruchomić raz zarówno w środowisku lokalnym, jak i CI.

Aby skonfigurować pamięć podręczną na CI, upewnij się, że jesteś uwierzytelniony.

Konfiguracja ustawień kompilacji Xcode#

Dodaj następujące ustawienia kompilacji do projektu Xcode:

bash
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

Należy pamiętać, że COMPILATION_CACHE_REMOTE_SERVICE_PATH i COMPILATION_CACHE_ENABLE_PLUGIN muszą zostać dodane jako zdefiniowane przez użytkownika ustawienia kompilacji, ponieważ nie są one bezpośrednio dostępne w interfejsie ustawień kompilacji Xcode:

Socket Path

Ścieżka gniazda zostanie wyświetlona po uruchomieniu tuist setup cache. Jest ona oparta na pełnej nazwie projektu z ukośnikami zastąpionymi podkreślnikami.

Ustawienia te można również określić podczas uruchamiania xcodebuild, dodając następujące flagi, takie jak

bash
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
Generated Projects

Ręczne konfigurowanie ustawień nie jest konieczne, jeśli projekt został wygenerowany przez Tuist.

W takim przypadku wystarczy dodać enableCaching: true do pliku Tuist.swift:

swift
import ProjectDescription
let tuist = Tuist(
fullHandle: "your-org/your-project",
project: .tuist(
generationOptions: .options(
enableCaching: true
)
)
)

Ciągła integracja #{ciągła-integracja}#

Aby włączyć buforowanie w środowisku CI, należy uruchomić to samo polecenie, co w środowisku lokalnym: tuist setup cache.

Dodatkowo należy upewnić się, że ustawiona jest zmienna środowiskowa TUIST_TOKEN. Można ją utworzyć, postępując zgodnie z dokumentacją tutaj. Zmienna środowiskowa TUIST_TOKEN _ musi_ być obecna w kroku kompilacji, ale zalecamy ustawienie jej dla całego przepływu pracy CI.

Przykładowy przepływ pracy dla GitHub Actions mógłby wyglądać następująco:

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