iOSDC Japan 2025
レギュラートーク(20分)

アセットのコンパイル時間をゼロにする

ojun_9 ojun ojun_9
4

Swiftファイルがコンパイルされるのと同じように、プロジェクト内のアセットカタログ(.xcassets)もビルド時にコンパイルされます。Swiftのコード量が増えるとコンパイル時間が伸びるのと同じように、アセット数が増えるとコンパイル時間も無視できなくなります。

例えば、数百のアセットを持つプロジェクトでは、クリーンビルド時のアセットコンパイルだけで数分以上かることがあります。

このコンパイルを担当するのが、Xcodeに同梱されている actool というツールです。ビルドフェーズでactoolが実行され、Assets.carを生成しています。

本トークでは、actoolを活用して事前にアセットをまとめてコンパイルし、生成したAssets.carをプロジェクトに組み込むことで、Xcodeビルド時のアセットコンパイルを実質的にゼロ秒にする方法を紹介します。

【話すこと】

  • actoolとは何か、どこにあるか
  • アセットコンパイルの仕組み
  • 事前コンパイル済みAssets.carを生成してプロジェクトに組み込む手順
  • アセット名のハードコーディング回避策
  • XCFrameworkとの比較と使い分け