Appleプラットフォームのアプリ開発では、写真の次にXcodeがMacの容量を使っているかもしれません。本体も大きいですが、本当に増えるのはビルド出力、アーカイブ、デバイスサポートファイル、シミュレータです。多くは安全に容量を取り戻せます。
おおよその合計はシステム設定 > 一般 > ストレージ > デベロッパで確認できます。
DerivedData:ビルド出力とインデックス
開いたすべてのプロジェクトの中間ビルドファイル、インデックス、モジュールキャッシュを保持します。プロジェクト、ブランチ、Xcodeのバージョンごとに増えますが、ビルド時にすべて再生成されます。
削除方法:
- Xcodeを終了します。
- Finderで移動 > フォルダへ移動を選び、
~/Library/Developer/Xcode/DerivedDataを入力します。 - 中のフォルダをゴミ箱に移動し、ゴミ箱を空にします。
ターミナルでは:
rm -rf ~/Library/Developer/Xcode/DerivedData/*
プロジェクトごとの次回ビルドは、再生成と再インデックスのため長くなります。保存先はXcode > Settings > Locationsで確認・変更できます。
アーカイブ:出荷したものは残す
Product > Archiveを選ぶたびに、デバッグシンボルを含むアーカイブが保存されます。公開済みビルドのクラッシュレポートをシンボリケーションするために必要です。無差別にすべて削除しないでください。
- Window > OrganizerでArchivesを選びます。
- 未出荷ビルドや使われなくなったバージョンのアーカイブを右クリックし、Deleteを選びます。
~/Library/Developer/Xcode/Archivesに日付別に保存されています。
デバイスサポートファイル
新しいOSバージョンの実機を接続すると、Xcodeはそのデバッグシンボルを~/Library/Developer/Xcode/iOS DeviceSupportへコピーします。watchOSなどにも同様のフォルダがあり、1つ数GBになることがあります。
テストしないOSバージョンのフォルダを削除します。そのバージョンの実機を再接続すると再生成されます。
シミュレータとランタイム
シミュレータは~/Library/Developer/CoreSimulator/Devicesにあり、各仮想デバイス内にアプリのデータを保持します。ランタイム(仮想OSバージョン)は別に保存され、大きな容量を使います。
インストールされていないランタイムのシミュレータを削除:
xcrun simctl delete unavailable
個別のシミュレータを削除するには、Window > Devices and Simulators > Simulatorsで右クリックし、Deleteを選びます。
ランタイムを削除するには、Xcode > Settings > Components(バージョンによってはPlatforms)で不要なものを選び、**マイナス(–)**ボタンを押します。ターミナルでも一覧と削除ができます。
xcrun simctl runtime list
xcrun simctl runtime delete <runtime-identifier>
削除せずに内容をリセットするには、SimulatorアプリのDevice > Erase All Content and Settingsを使います。
古いXcodeのバージョン
互換性のために複数のXcodeを保存している場合、それぞれが大容量です。/Applications内の不要なコピーを削除します。
キャッシュ
Xcodeは~/Library/Caches/com.apple.dt.Xcode、Swift Package Managerは~/Library/Caches/org.swift.swiftpmにキャッシュやダウンロード済みパッケージを保存します。どちらも必要に応じて再生成されます。削除前にXcodeを終了してください。
CocoaPods、Homebrew、npm、GradleなどはMacの開発者キャッシュの削除をご覧ください。
よくある質問
Xcode DerivedDataを削除しても安全ですか?
はい。ビルド出力、インデックス、キャッシュだけで、Xcodeが再生成します。まずXcodeを終了してください。再生成中は次のビルドが遅くなります。
Xcodeのアーカイブを削除できますか?
未公開ビルドのものは削除できます。公開済みバージョンのクラッシュを読むためのデバッグシンボルが必要なら、そのアーカイブを残してください。
iOS DeviceSupportとは何ですか?削除できますか?
実機からコピーしたデバッグシンボルです。テストしないOSバージョンのフォルダは削除できます。そのバージョンの実機を接続すると再生成されます。