Levo ガイド · 開発者向け: Apple
Xcode はなぜこんなに大きい? 削除しても安全なもの

Xcode アプリは全体の一部にすぎません。本当に重いのは ~/Library/Developer にあるものです。ビルドデータ、シミュレータ、ダウンロードしたランタイム、接続したすべてのデバイスのデバッグシンボルです。ほとんどは元に戻るので、削除して構いません。例外は、アーカイブと、まだ使っているシミュレータ内のデータの 2 つです。
| 対象 | 場所 | 削除しても安全? |
|---|---|---|
| Xcode.app | /Applications/Xcode.app | 古いバージョンは削除可。使っているものは残す |
| ビルドデータ | ~/Library/Developer/Xcode/DerivedData | はい。次のビルドで再生成されます |
| シミュレータ | ~/Library/Developer/CoreSimulator/Devices | はい。ただし中のアプリデータも消えます |
| シミュレータのランタイム | /Library/Developer/CoreSimulator(ディスクイメージ) | はい。必要になったら再ダウンロードします |
| デバイスサポート | ~/Library/Developer/Xcode/iOS DeviceSupport | はい。接続時に再びコピーされます |
| アーカイブ | ~/Library/Developer/Xcode/Archives | ビルドを出荷済みで、シンボルを別の場所に保存してある場合のみ |
| キャッシュ | ~/Library/Caches/com.apple.dt.Xcode | はい |
| SwiftUI プレビュー | ~/Library/Developer/Xcode/UserData/Previews | はい |
| コマンドラインツール | /Library/Developer/CommandLineTools | Xcode 本体があり、単体では必要ない場合のみ |
自分でやる方法
まずフォルダのサイズを測り、大きいものに時間を使います。
du -sh ~/Library/Developer/Xcode/* ~/Library/Developer/CoreSimulator /Library/Developer/CoreSimulator 2>/dev/null
- Xcode を終了し、
DerivedDataの中身を削除します。DerivedData を削除する方法 を参照してください。 - 使っていないシミュレータとランタイムを
xcrun simctlで削除するか、Xcode › 設定 › Components で削除します。古いシミュレータを削除する方法 を参照してください。 iOS DeviceSupportを開き、デバイスがもう使っていない iOS バージョンのフォルダを削除します。DeviceSupport とは を参照してください。- SwiftPM と CocoaPods のキャッシュ にあるコマンドで、パッケージのキャッシュを削除します。
- Xcode › Window › Organizer › Archives を開いて、中身を確認します。アーカイブは、App Store Connect に送ったビルドそのものの唯一のコピーで、中の dSYM がクラッシュレポートのシンボル化に使われます。ほかの場所にそのシンボルがあるときだけ、古いものを削除してください。
/Applications 内の古い Xcode は 1 つあたり約 12〜15 GB です。Developer フォルダをどけるのではなく、Finder で削除してください。
元に戻すのにかかるコスト
最も失っても痛くないのは DerivedData で、プロジェクトごとにビルドが 1 回遅くなるだけです。シミュレータのランタイムは数 GB のダウンロードと数分かかるので、アプリが対応する iOS バージョンだけ残してください。デバイスサポートは、次に iPhone を接続したときに少し待つだけです。
アーカイブは違います。中の dSYM ファイルがあるから、古いリリースの生のクラッシュレポートが読める行に変わります。リリース時に dSYM をクラッシュ解析ツールにアップロードしているなら、アーカイブはただの大きな zip で、削除できます。していないなら、今も使われているすべてのバージョンのアーカイブを残してください。
Xcode 自体のアップデートも、気づきにくい原因です。新しいバージョンを古いものの隣にインストールするたびに 12〜15 GB 増え、Xcode のベータ版も積み重なります。古いものを Finder で削除してゴミ箱を空にすれば、容量はすぐに戻ります。Mac がほぼいっぱいなら、ほかの何よりも先にこれをやってください。ディスクがいっぱいだと、Xcode のインデックス作成やビルドが妙な形で失敗します。
Levo ならこうします
Levo は、Xcode build data、デバイスサポートファイル、シミュレータ、パッケージのキャッシュを、サイズ付きの別々の行として表示するので、上のどれがあなたの 80 GB なのかがわかります。プロジェクトが古い、またはなくなっている場合は、ビルドデータとキャッシュが最初にチェックされます。古い Xcode とアーカイブは表示されますが、自動でチェックされることはありません。
Levo はシミュレータを Xcode 純正の simctl で削除し、Xcode、xcodebuild、起動中のシミュレータのいずれかが動いている間は、ビルドデータには手を触れません。iOS と Mac 開発者向けの Levo を参照してください。
よくある質問
Xcode が 100 GB も使っているのはなぜですか?
アプリの外に保存しているものがあるからです。プロジェクトごとのビルドデータ、シミュレータとそのランタイム、接続したすべてのデバイスのデバッグシンボル、アーカイブです。アプリ自体は約 15 GB です。
Xcode の Library/Developer フォルダを削除してもいいですか?
フォルダ全体はだめです。中の DerivedData、CoreSimulator のデバイス、DeviceSupport は削除して構いませんが、Archives と、キーバインドやテーマを保存した UserData フォルダは、失ってもよい場合を除いて残してください。
DerivedData を削除するとプロジェクトが壊れますか?
いいえ。ソースもプロジェクト設定も DerivedData には入っていません。Xcode が再ビルドと再インデックスをする間、次のビルドが遅くなります。
シミュレータのランタイムは削除しても安全ですか?
はい。ダウンロードしたものなので、プロジェクトに必要になれば Xcode が再び取得します。シミュレータのデバイスを削除すると、中のアプリデータは消えます。