計ってから縮める。デバッグは今の CPU だけ・差分のコンパイル・dSYM なし、根本はモジュール分割で作り直す範囲を減らす。
Xcode のビルドが遅いときは、まずどこに時間がかかっているかを計ります。Report Navigator の Build Timeline や、Product メニューの Build With Timing Summary で、ターゲットや段階ごとの時間が見られます。
| やること | 設定・方法 | 効くところ |
|---|---|---|
| デバッグは今の端末の CPU だけ | ONLY_ACTIVE_ARCH を Debug で Yes | デバッグのビルド |
| Swift を差分でコンパイル | SWIFT_COMPILATION_MODE を Debug は Incremental、Release は Whole Module | 少しだけ変えたときのビルド |
| デバッグで dSYM を作らない | DEBUG_INFORMATION_FORMAT を Debug は DWARF | デバッグのビルド |
| 時間のかかる関数を見つける | -Xfrontend -warn-long-function-bodies=200 などで警告を出す | 型推論が重いコード |
| モジュールに分ける | Swift Package やフレームワークに分ける | 変更の影響範囲を小さくする |
Swift は、型の書いていない長い式(多くの演算子や、型を省いた大きな配列・辞書)の型推論で時間がかかることがあります。警告で見つけたら、型を明示したり式を分けたりします。設定を変えたら、きれいな状態からのビルドと、1ファイルだけ変えたビルドの両方で前後を比べます。
面接ではこう答える
Xcode のビルドを速くするには、まず Build Timeline などでどこに時間がかかっているかを計ります。デバッグのビルドでは、今の端末の CPU 向けだけにし、Swift を差分でコンパイルし、dSYM を作らない設定になっているかを確かめます。型推論に時間がかかる関数は警告のオプションで見つけて型を明示します。根本的には、コードを Swift Package などのモジュールに分け、変えたモジュールとその上だけを作り直すようにします。
Appとの関わり毎日の開発の待ち時間と CI の時間・費用に直結し、チームの速さを上げる改善として面接でも話せます。