AskClean

Xcode の iOS DeviceSupport は削除できる?安全な整理方法

AskClean チーム · 更新日 2026-11-02

もう実機デバッグに使わない OS バージョンの DeviceSupport は削除できますが、現在のテスト端末が使うバージョンは残してください。対応する端末を接続し直せば Xcode がサポートを準備し直すため、削除の主なコストは後で待たされることであり、ソースコードを失うことではありません。

開発用 Mac とスマートフォンの周囲に並ぶ現行および旧版のデバイスデバッグシンボル
現在の実機テスト構成に必要なサポートは残し、使わない OS バージョンのフォルダだけを個別に確認します。

DeviceSupport に入っているもの

Xcode で実機の iPhone、iPad、Apple Watch、Mac をデバッグするには、その端末の OS ビルドに対応するサポートデータが必要です。古い Xcode から使い続けている Mac では、~/Library/Developer/Xcode/iOS DeviceSupport の下にバージョンごとのフォルダがあり、同じ階層に macOS DeviceSupport フォルダもあることがあります。

これらのファイルは、デバッガを接続するときに Xcode がシステムのフレームワークやシンボルを読み解くためのものです。アプリのソースコードでも、シミュレータのデバイスでも、配布したアプリに対応する dSYM でもありません。この 3 つは削除のコストがそれぞれ異なるため、安全に整理するには、まず区別して扱うことから始めます。

異なる OS バージョンやビルドの端末を接続するたびに、フォルダは大きくなります。何台もの端末で複数のリリースサイクルにわたってテストしてきた Mac には、いま手元にある端末ではもう使わないバージョンのサポートデータが残りがちです。

フォルダを見つけて保持リストを作る

確認の前に Xcode を終了し、端末を取り外します。Finder で Command + Shift + G を押して ~/Library/Developer/Xcode と入力し、iOS DeviceSupport と macOS DeviceSupport を探します。実際にどのフォルダがあるかは、この Mac で使ってきたプラットフォーム、Xcode のバージョン、実機によって異なります。

Finder をリスト表示にして、フォルダのサイズを計算します。ターミナルなら du -sh ~/Library/Developer/Xcode/*DeviceSupport* で、読み取りだけの概要を確認できます。ワイルドカードに一致するものがないとシェルがエラーを表示することがありますが、それは該当するフォルダがないというだけです。

次に、今後もデバッグする実機を洗い出します。各端末の「設定」>「一般」>「情報」でソフトウェアのバージョンを確認するか、端末を接続して Xcode の Window > Devices and Simulators で確認します。この現役のテスト構成と一致する OS バージョンとビルドのサポートフォルダは残します。

  1. Xcode と Simulator を終了し、テスト用の実機を取り外します。
  2. Finder で ~/Library/Developer/Xcode を開き、DeviceSupport フォルダごとのサイズを測ります。
  3. 今後デバッグする予定のすべての実機について、現在インストールされている OS バージョンを一覧にします。
  4. 一致するバージョンに加え、チームが必要とする近日中のベータや互換性テストの対象バージョンも残します。
  5. 一致しない古いバージョンのフォルダだけをゴミ箱に移し、次に実機デバッグが問題なくできると確認できるまで、ゴミ箱を空にしないでください。

削除後に起きること

サポートフォルダを削除したバージョンの端末を後で接続すると、Xcode が必要なサポートを復元または取得するあいだ、準備中のメッセージが表示されることがあります。Apple は Xcode のリリースノートの回避策として、この再コピーの動作を記載しています。iOS DeviceSupport を削除してから端末を接続し直すと、Xcode がシンボルを再びコピーするというものです。

つまり DeviceSupport はおおむね再接続で元に戻せますが、いつ削除してもコストがないわけではありません。準備し直すには時間がかかり、端末と対応するツールが必要で、締め切り直前のデバッグを中断させることもあります。フォルダをゼロまで減らそうとせず、現在のテスト端末で使うバージョンは残してください。

もう再現も再接続もできない古い OS ビルドについては、必要になる可能性の小ささとサイズを比べて判断します。慎重に進めるなら、まずバックアップされた外部ストレージにフォルダを移します。後で古いバージョンの調査に必要になったら、同じ場所に戻してください。

Apple が記載した「削除して再接続する」手順は、特定の Xcode リリース向けの回避策です。サポートを準備し直せることの根拠にはなりますが、現在の DeviceSupport フォルダをすべて消すよう勧めるものではありません。

混同しやすい 4 種類の Xcode ストレージ

DeviceSupport は実機のデバッグ用です。シミュレータのランタイムは Xcode の Settings > Components(Xcode 14〜15 では Platforms)からインストールするプラットフォームのイメージで、シミュレートされた個々のデバイスとそのアプリは CoreSimulator の下にあります。DeviceSupport を削除しても、シミュレータのランタイムはアンインストールされません。

DerivedData には、プロジェクトのビルド成果物とインデックスが入っています。ソースから作り直せるので、低リスクで容量を取り戻すときに、通常は最初に整理する Xcode のカテゴリです。DeviceSupport も多くの場合は元に戻せますが、対応する実機向けに Xcode がサポートを準備し直してからになります。

Archives はコストの高いカテゴリです。.xcarchive には、配布したビルドの正確なアプリバイナリと、対応する dSYM が保存されていることがあります。バージョン番号が古い DeviceSupport フォルダと似ているという理由で、アーカイブを削除しないでください。名前は似ていても、別の成果物です。

本当に DeviceSupport が容量の原因か測る

Xcode フォルダが大きいからといって、DeviceSupport が主な原因とは限りません。DerivedData、Archives、CoreSimulator、DocumentationCache、DeviceSupport を個別に測ってください。使っていないシミュレータランタイムを残したまま小さなシンボルフォルダを消しても、空く容量はわずかで、余計な準備時間が増えるだけです。

起動ディスクの空きがほとんどないなら、まずリスクの低い候補で作業スペースを確保します。ゴミ箱、ダウンロード、古い DerivedData、内容を確認した利用不可(unavailable)のシミュレータデバイスなどです。その後で DeviceSupport を OS バージョンごとに確認し、Archives はリリースの保持方針に沿って、時間を取って監査してください。

整理した後も、もう一度測ってください。macOS のストレージ設定は表示の更新が遅れることがありますが、Finder のフォルダサイズや du なら、前後の差をより直接比べられます。誰にでも当てはまる GB 数を期待しないでください。空く容量は、不要なバージョンのフォルダが実際に使っていた分だけです。

AskClean が違いを見えるようにする

AskClean は iOS と macOS の DeviceSupport を独立した Xcode 項目として測定し、バージョンごとに個別に一覧にします。デバイスのモデルごとに最新のバージョンは選択しないままにし、それより古いバージョンは確認用にあらかじめ選択します。確認して確定するまでは何も削除されません。DerivedData と混ぜることも、Archives を同じようなキャッシュとして表示することもありません。

スキャン結果では、DeviceSupport には後で準備し直すコストがあることを説明し、削除の前に必ず確認を求めます。確定した項目はゴミ箱に移動せず完全に削除され、元に戻せません。Archives には、さらに厳しい「元に戻せないコスト」の扱いをします。判断材料は見えるようになりますが、最終的な基準は、現在の実機テスト構成です。

DeviceSupport は Xcode ストレージの一層

場所と復旧のコストで区別し、別の成果物を誤って削除しないようにします。

カテゴリ主な場所削除した結果
実機のサポート~/Library/Developer/Xcode/iOS DeviceSupport対応する端末を接続し直したときに、Xcode がサポートを準備し直す場合があります。
シミュレータのデータ~/Library/Developer/CoreSimulatorデバイスを削除すると、インストールされたアプリとテストデータも失われます。
DerivedData~/Library/Developer/Xcode/DerivedDataプロジェクトはソースから再ビルドされ、インデックスも作り直されます。
Archives とアプリの dSYM~/Library/Developer/Xcode/Archives配布したビルドの正確なバイナリと dSYM を、二度と取り戻せなくなる可能性があります。

よくある質問

iOS DeviceSupport は安全に削除できますか?

もうデバッグしない OS バージョンのフォルダは、一般に削除できます。現在の実機が使うバージョンは残してください。削除したバージョンが後で必要になっても、その端末を接続し直したときに Xcode がサポートを準備し直すかコピーし直す場合があります。

DeviceSupport にアプリの dSYM は入っていますか?

DeviceSupport は実機と OS のデバッグを支えるデータで、配布したビルドと一緒に保存したアプリの dSYM の代わりにはなりません。正式版のクラッシュをシンボリケートするには、対応するアーカイブか dSYM を残してください。

DeviceSupport を削除すると、シミュレータのランタイムも消えますか?

消えません。シミュレータのランタイムと仮想デバイスのデータは、Xcode の Settings > Components、simctl、CoreSimulator フォルダで別に管理されています。

削除したフォルダを Xcode が作り直したのはなぜですか?

接続した実機の OS ビルドに対応するサポートが Xcode に必要だからです。サポートがないと Xcode が準備し直すかコピーし直すため、同じバージョンでデバッグを続ける限り、容量はまた使われます。

参考資料

Xcode ストレージの確認を続ける