Xcodeキャッシュ
TuistはXcodeコンパイルキャッシュのサポートを提供し、ビルドシステムのキャッシュ機能を活用することで、チームがコンパイル成果物を共有することを可能にする。
セットアップ
要件
- Aトゥイストのアカウントとプロジェクト
- Xcode 26.0以降
まだTuistのアカウントとプロジェクトを持っていない場合は、Tuistを起動してアカウントを作成することができる:
bash
tuist initfullHandle を参照するTuist.swift ファイルを用意したら、これを実行することでプロジェクトのキャッシュを設定できる:
bash
tuist setup cacheこのコマンドは、Swift の ビルドシステム がコンパイルの成果物を共有するために使用する、起動時にローカルのキャッシュサービスを実行する LaunchAgent を作成します。このコマンドはローカルと 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 = YESCOMPILATION_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=YESジェネレイテッド・プロジェクト
プロジェクトがTuistによって生成されている場合は、手動で設定する必要はない。
その場合、Tuist.swift ファイルにenableCaching: true を追加するだけでよい:
swift
import ProjectDescription
let tuist = Tuist(
fullHandle: "your-org/your-project",
project: .tuist(
generationOptions: .options(
enableCaching: true
)
)
)継続的インテグレーション#{continuous-integration}。
CI環境でキャッシュを有効にするには、ローカル環境と同じコマンドを実行する必要がある:tuist setup cache.
さらに、TUIST_CONFIG_TOKEN 環境変数が設定されていることを確認する必要があります。こちらのドキュメントに従って作成できます。TUIST_CONFIG_TOKEN 環境変数__ がビルドステップに存在する必要がありますが、CIワークフロー全体に設定することをお勧めします。
GitHub Actions のワークフローの例は次のようになります:
yaml
name: Build
env:
TUIST_CONFIG_TOKEN: ${{ secrets.TUIST_CONFIG_TOKEN }}
jobs:
build:
steps:
- # Your set up steps...
- name: Set up Tuist Cache
run: tuist setup cache
- # Your build steps