Xcode の DerivedData を安全に削除する方法

DerivedData は Xcode がビルド生成物とインデックスを置く場所で、中身はすべて Xcode が作り直せます。Xcode と実行中のビルドが止まっていれば削除してかまいませんが、次のビルドとインデックス作成には時間がかかります。Xcode の Archives とプロジェクトフォルダは別の場所にあり、作り直せないので残しておいてください。

要点

  • 要するに: DerivedData の中身は Xcode がすべて作り直せるので、Xcode と実行中のビルドが止まっていれば削除できます。次のビルドは時間がかかります。
  • 気をつけたいこと: Xcode Archives とプロジェクトのフォルダには触れないでください。別の場所にあり、作り直せません。
  • Mint なら: Mint は DerivedData を Safe to clean にプロジェクトごとに並べます。中身はすべて Xcode が作り直せるので、最初からチェックが入っています。

DerivedData の場所

標準の場所は ~/Library/Developer/Xcode/DerivedData で、プロジェクトやワークスペースごとにフォルダがひとつずつあります。フォルダ名はプロジェクト名のあとにランダムな文字列が続く形なので、見分けるのは難しくありません。Xcode の「設定」から「Locations」を開き、DerivedData のパスの横にある小さな矢印をクリックしても開けます。

Archives はすぐ隣の ~/Library/Developer/Xcode/Archives にあります。書き出したビルドと、そのビルドのクラッシュレポートを読むためのシンボルファイルが入っているので、今回の削除には含めないでください。

シミュレータのランタイムとデータは別の方法で管理

シミュレータの容量を数え間違えた理由(英語)

手作業で削除する

特定のプロジェクトだけ調子が悪いなら、そのプロジェクトのフォルダだけを削除します。容量を空けたいときは日付順に並べ、しばらく開いていないプロジェクトのフォルダを消していきましょう。

  1. 実行中のビルドやテスト、プレビューが終わるのを待ってから Xcode を終了します。
  2. DerivedData フォルダを開き、各フォルダの名前、日付、サイズを確認します。
  3. 選んだプロジェクトフォルダをゴミ箱に移します。
  4. 作業中のプロジェクトを開き、インデックス作成とビルドが終わってからゴミ箱を空にします。

Mint でできること

Mint の Disk ページでは、DerivedData が Safe to clean(安全に片付けられるもの)の中に複数の行に分かれて並ぶので、プロジェクト単位で選べます。中身はすべて Xcode が作り直せるため、最初からチェックが入っています。Clean を押す前にビルドが終わるのを待って Xcode を終了するか、ビルド中のプロジェクトのチェックを外してください。

Clean は一度確認したあと、チェックの入った行を完全に削除します。ビルド生成物はゴミ箱に移しても、ゴミ箱を空にするまで空き容量が増えないからです。同じスキャンで、シミュレータのキャッシュやパッケージマネージャのキャッシュ、node_modules フォルダも見つかります。

Safe to clean の仕組み(英語)

よくある質問

Xcode の DerivedData は削除しても大丈夫ですか?

ビルド中でなければ大丈夫です。Xcode が作り直します。困るのは、次のビルドが遅くなり、インデックス作成がやり直しになることくらいです。

DerivedData を削除するとコードも消えますか?

消えません。ソースコードはプロジェクトフォルダにあります。削除する前にパスを確認し、プロジェクトや Archives のフォルダを誤って選ばないようにしてください。

App Store 版の Mint で DerivedData を削除できますか?

できません。App Store 版は ~/Library にアクセスできないため、DerivedData の削除は Direct 版と Setapp 版の機能です。

DerivedData がどれだけあるか確かめましょう

Mint でスキャンして Safe to clean を開き、もう使わないプロジェクトのフォルダを削除してください。

開発ファイルをスキャン