2026年02月05日

Macの肥大したシステムデータを削除してディスクスペースを確保する(iOSアプリ開発者向け)

Macを使用しつづけていると、数百GBものシステムデータが蓄積されてディスクスペースを圧迫し、Xcodeのアップデートに必要なディスクスペースが不足してしまう状況が発生するようになる。

システムデータは、Xcodeで使用しているキャッシュやシミュレータのランタイムなど分類できないファイルをひとまとめにした呼称。
iOSアプリ開発者は、主にXcodeが使用するデータを削除することによりディスクスペースが確保できる。

1. Xcodeを使用して開発したときに作成されるユーザデータ
/Users/USERNAME/Library/Developer/Xcode
・DerivedData ビルド時の中間生成ファイル
・Archives   審査提出時のipaファイル
・DeviceLogs  OSバージョン&デバイス毎のログファイル
・iOS DeviceSuppor  iiPhone実機端末との接続を認識したタイミングで作成されるファイル
・watchOS DeviceSupport  Apple Watch実機端末との接続を認識したタイミングで作成される

Fiderを開いて、ファイルメニュー → 移動 → ライブラリから削除するか、ターミナルを開いて下記のコマンドで削除する。
rm -rf ~/Library/Developer/Xcode/DerivedData/*
rm -rf ~/Library/Developer/Xcode/Archives/*
rm -rf ~/Library/Developer/Xcode/DeviceLogs/*
rm -rf ~/Library/Developer/Xcode/iOS\ DeviceSupport/*
rm -rf ~/Library/Developer/Xcode/watchOS\ DeviceSupport/*


参考記事:
https://qiita.com/5enxia/items/9c97f0fed4757aaae684


2. シミュレータ関連のデータ
2.1 キャッシュ
ターミナルを開いて下記のコマンドで削除する。
rm -rf ~/Library/Developer/CoreSimulator/Caches/dyld/*


2.2 シミュレータ本体
ターミナルを開いて下記のコマンドで削除する。
・使用していないシミュレータの削除
xcrun simctl delete unavailable

・全てのシミュレータの削除
xcrun simctl erase all


2.3 シミュレータのランタイム
ランタイムはOSバージョン毎にサーバからダウンロードされてディスクスペースを大量消費するので、不要なファイルを削除することが重要。
開発方針にもよるが、最新バージョンのOSのランタイムだけあれば十分。

2.3.1 Xcodeから削除する方法
(1) Xcodeを起動 → ファイルメニュー → Xcode → Settings → Components → Platform Support
(2) 不要なOSバージョンの(i)マーク → Delete

参考記事:
https://www.reddit.com/r/MacOSBeta/comments/1fvcfaf/assetsv2_folder_taking_up_nearly_50gb_of_space/?tl=ja


2.3.2 コマンドラインで削除する方法
(1) ターミナルを開いて下記のコマンドでランタイム一覧を表示する。
xcrun simctl runtime list

ランタイム一覧は、下記のように表示される。
== Disk Images ==
-- iOS --
iOS 18.4 (22E5232a) - 5EB858AB-7F77-4626-89D5-167A1FE2FA9F (Ready)
iOS 18.5 (22F77) - 79055BE3-64B0-4C85-893E-DC85C6DE11C9 (Ready)
iOS 18.1 (22B81) - AD52D423-BE2B-47C8-A4D8-9E35B2B6FBCF (Ready)
iOS 18.4 (22E238) - 7D31A0E1-2391-4E44-A624-CD77220C1EC1 (Ready)
iOS 18.4 (22E5200m) - 2F88DCC0-BE38-48AC-8884-D1D33E7C589D (Ready)
iOS 18.4 (22E5216h) - E47FF46E-85AC-4BC1-930E-3385F7E31A72 (Ready)
iOS 18.3.1 (22D8075) - 6F09B912-5B26-48A9-BEC2-791C8027DF6B (Ready)
iOS 26.2 (23C52) - B95D7D1B-987F-4720-9F9D-303E9F2776FF (Ready)
iOS 18.0 (22A3351) - 46C61A7C-958B-4FED-A7F0-4557B9600CFA (Ready)
iOS 18.2 (22C150) - 99E5EED2-EF59-467F-81E5-4B678CEBB679 (Ready)
-- watchOS --
watchOS 11.4 (22T5228e) - 7752D8AE-86DD-4BE6-8DA1-9C66A0FADFE5 (Ready)
watchOS 11.5 (22T572) - BFBBE74F-5A68-4F86-B79F-57A9BD11F5CA (Ready)
watchOS 11.4 (22T5244a) - 97D45647-63D0-4376-A4D3-452CDB87E5A0 (Ready)
watchOS 26.2 (23S303) - EC15359A-387A-441D-91D5-AB01A75AC411 (Ready)

Total Disk Images: 14 (13.3G) [Note: 12 image(s) are of unknown size]


(2) 不要なランタイムを下記のコマンドで削除する。(iOS 18.4 (22E5232a) を削除したい場合)
xcrun simctl runtime delete 22E5232a


参考記事:
https://qiita.com/AlohaYos/items/3bc722d32712cc821da7


3. Macローカルスナップショットを削除
TiimeMachineバックアップは、外付けHDDやSSDだけでなくMachintosh HDにも保存され、これをローカルスナップショットと呼ぶ。
ローカルスナップショットもディスクスペースを圧迫する要因なので、これを削除する。
3.1 ターミナルから下記のコマンドでローカルスナップショットの存在を確認する。
tmutil listlocalsnapshots /

ローカルスナップショットは、下記のように表示される。
com.apple.TimeMachine.2025-09-30-122611.local

3.2 ターミナルから下記のコマンドでローカルスナップショットを削除する。
sudo tmutil deletelocalsnapshots タイムスタンプ

コマンド例:sudo tmutil deletelocalsnapshots 2025-09-30-122611

コマンド投入時、管理者パスワードの入力を求められる。
ファイルユーティリティのOnyxでも削除可能(ユーティリティ→APFSスナップショット)

参考記事:
https://recoverit.wondershare.jp/mac-tips/5-ways-to-reduce-system-data-on-mac.html


4. ディスクスペースを大量に消費するファイルを突き止めて徹底的に削除する。
4.1 ターミナルから下記のコマンドを入力し、ディスクスペースを大量消費する順にファイル一覧をテキストファイル化してデスクトップに保存する。
sudo du --si -xct 1000000000 /System/Volumes/Data | tee >(grep -ve $'* ' > ~/Desktop/DiskSpace.txt) | sort -nr > ~/Desktop/SortedDiskSpace.txt


4.2 デスクトップ上のSortedDiskSpace.txtを開き、大量消費しているファイルのうち、不要なファイルを削除する。
OSやXcodeなどのアプリケーション、ユーザデータを誤って削除すると取り返しがつかない状態となるので、事前にTimeMachineにバックアップを取得するなり、本当に不要か十分に調査すること。あくまで自己責任で実施すること。

参考記事:
https://www.crossroad-tech.com/entry/macos-systemdata-2nd
https://qiita.com/hann-solo/items/879573a65d8aa201ae14


5. Onyxを起動してディスクスペースをメンテナンス
5.1 メニュー → メンテナンス → 実行 (設定はデフォルトのままでOK)
5.2 メニュー → ユーティリティ → APFSスナップショット → APFSスナップショットを削除する


6. 一覧のファイル削除操作の後、セーフブートして1時間放置すると、 システムデータが完全に削除されるという怪情報もあるが信憑性は不明。
検証してみたが、セーフブートしなくてもしばらく放置していたら、システムデータの占有容量が300GB超だったのが36GBまで減少したことを確認したので、セーフブートするか否かは関係ないと思われる。

参考記事;
https://www.crossroad-tech.com/entry/macos-systemdata-2nd
https://support.apple.com/ja-jp/guide/mac-help/mh21245/mac
posted by mobileDeveloper at 19:33 | Comment(0) | TrackBack(0) | トラブルシューティング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック