Xcodeの容量を減らすには?削除してよいデータ
Xcodeはどこで容量を使っていますか?
容量の大部分を使っているのはXcode.app本体ではなく、~/Library/Developerです。ここにはビルドデータ、デバイスのシンボル、シミュレータ、アーカイブがたまり、プロジェクトやiOSのバージョンが増えるたびに大きくなります。
~/Library/Developer/Xcode/DerivedData– ビルドの中間生成物とインデックス。~/Library/Developer/Xcode/iOS DeviceSupport– これまでに接続したiOSバージョンごとのシンボル。~/Library/Developer/Xcode/Archives– dSYMファイルを含む、アーカイブ済みのビルド。~/Library/Developer/CoreSimulator/Devices– シミュレータのデバイスとそのデータ。~/Library/Developer/CoreSimulator/Caches– シミュレータのキャッシュ。
安全に削除できるものは?
次のデータは再作成可能で、必要になるとXcodeが作り直します。使用中のファイルがないよう、先にXcodeを終了してください。
- DerivedData:丸ごと削除できます。次回のビルドとインデックス作成に時間がかかるだけです。
- iOS DeviceSupport:もうテストしていない古いiOSバージョンのフォルダ。デバイスを接続すると再ダウンロードされます。
- CoreSimulatorのキャッシュ:必要に応じて再作成されます。
- 利用できないシミュレータ:
xcrun simctl delete unavailableで、ランタイムがインストールされていないデバイスを削除できます。
残しておくべきものは?
アーカイブ(Archives)には、リリースしたビルドのdSYMファイルが含まれています。これがないと、そのバージョンのクラッシュレポートをシンボリケートできなくなります。少なくとも、まだユーザが使っているすべてのバージョンのアーカイブは残し、それ以外はXcodeのWindow › Organizerから削除してください。
まだ必要なテストデータを含むシミュレータのデバイスや、対象プラットフォームのランタイムも、むやみに削除しないでください。また、~/Library内では、ここに挙げたフォルダ以外は削除しないでください。
シミュレータのランタイムを削除するには?
シミュレータのランタイムは、1つで数GBになることもよくあります。管理はXcode › 設定(Settings)› プラットフォーム(Platforms)で行います(古いXcodeではPreferences › Components)。ランタイムを選択し、マイナスボタンで削除します。
ターミナルでは、xcrun simctl runtime listでインストール済みのランタイムを確認できます。シミュレータのデバイスを個別に削除するには、XcodeのWindow › Devices and Simulatorsを使います。
Xcodeと一緒に増えるパッケージキャッシュは?
パッケージマネージャはそれぞれ独自のキャッシュを持っており、安全に消去できます。次回のダウンロード時に再びたまっていきます。
- Homebrew:
brew cleanupで古いバージョンや不要になったダウンロードを削除できます。 - CocoaPods:
pod cache clean --allでPodのキャッシュを消去できます。 - Swift Package Manager:キャッシュは
~/Library/Caches/org.swift.swiftpmにあり、パッケージは必要なときに再取得されます。
Xcodeの容量を安全に減らす
Xcodeを終了する
使用中のファイルがないよう、XcodeとSimulatorを終了します。
DerivedDataを削除する
Finderで移動 › フォルダへ移動を選び、~/Library/Developer/Xcode/DerivedDataと入力して、中身をゴミ箱に入れます。
古いDeviceSupportフォルダを削除する
~/Library/Developer/Xcode/iOS DeviceSupportを開き、もうテストしていないiOSバージョンのフォルダを削除します。
利用できないシミュレータを削除する
ターミナルでxcrun simctl delete unavailableを実行します。
使っていないランタイムを削除する
Xcode › 設定(Settings)› プラットフォーム(Platforms)で、不要になったシミュレータのランタイムを削除します。
アーカイブを見直す
Window › Organizerを開き、もう使われていないバージョンのアーカイブだけを削除します。
パッケージキャッシュを消去する
HomebrewやCocoaPodsを使っている場合は、brew cleanupとpod cache clean --allを実行します。
よくある質問
DerivedDataを削除しても安全ですか?
はい。DerivedDataは次回のビルド時にXcodeが再作成します。最初のビルドとインデックス作成に少し時間がかかります。使用中のファイルがないよう、先にXcodeを終了してください。
iOS DeviceSupportを削除するとどうなりますか?
次にデバイスを接続したとき、Xcodeが対応するシンボルを再ダウンロードします。数分かかることがあります。そのため、もう使っていない古いiOSバージョンのフォルダから削除するのがおすすめです。
~/Library/Developerを丸ごと削除してもいいですか?
いいえ。そこには、dSYMファイルを含むアーカイブ、テストデータを含むシミュレータのデバイス、ほかの開発ツールのデータも入っています。再作成可能なフォルダだけを選んで削除してください。
どのくらいの容量が空きますか?
プロジェクト、iOSバージョン、シミュレータの数によって大きく異なります。まずdu -sh ~/Library/Developer/*やディスクマップで、お使いのMacでどのフォルダが大きいかを確認してください。