ある日、iOS / Android シミュレーターでデバッグしようとしたら失敗しました。
ほぼ満タン。
ビルドも通らないし、シミュレーターもまともに動かない。
原因を探してみると、「システムデータ」が100GBを超えていました。
システムデータって何?
macOSのストレージ表示に出てくる「システムデータ」。
でもこれ、何が入っているのかよく分かりません。
調べてみると、開発環境では主に以下が含まれます。
- Xcode の DerivedData
- Xcode の Archives
- iOS Simulator データ
- Android Emulator データ
- 各種キャッシュ
- ログファイル
Flutter + Android Studio + Xcode 環境だと、
かなり溜まりやすいです。
ターミナルで原因を追う
まずはどこが重いのか確認。
sudo du -sh /*
ざっくり確認したあと、
du -sh ~/Library/*
Library 配下が異様に重いことが判明しました。
特に大きかったのが以下のディレクトリです。
-
~/Library/Developer/Xcode/DerivedData
→ ビルドキャッシュ。削除しても再生成される -
~/Library/Developer/Xcode/Archives
→ 過去のアーカイブデータ。放置すると肥大化 -
~/Library/Developer/CoreSimulator
→ iOSシミュレーターの実体データ。かなり重い -
~/Library/Caches
→ 各種アプリのキャッシュ
実際に削除したもの
① DerivedData
rm -rf ~/Library/Developer/Xcode/DerivedData
→ 数十GB削減できました。
ビルドキャッシュなので削除しても問題ありません。
次回ビルド時に再生成されます。
② Archives
rm -rf ~/Library/Developer/Xcode/Archives
→ 過去のアーカイブが大量に残っていました。
不要なアーカイブは削除してOKです。
(App Store提出用など必要なものは残してください)
③ iOS Simulator データ
rm -rf rm -rf ~/Library/Developer/CoreSimulator/Devices
→ これがかなり大きかったです。
不要なシミュレーターは削除して問題ありません。
必要になれば再作成できます。
④ キャッシュ
rm -rf ~/Library/Caches/*
→ 数GB削減できました。
各種アプリのキャッシュなので削除しても再生成されます。
結果
システムデータは100GB超えから、
約72GBまで減少しました。
ストレージに余裕ができ、
- シミュレーターも正常に起動
- ビルドも問題なく通過
するようになりました。
注意点
- 本番用アーカイブが必要な場合は削除しない
- 実機ログなどが必要なら事前にバックアップする
-
rm -rfコマンドは慎重に実行する
なぜこうなるのか
Flutter + Android Studio + Xcode 環境では、次のようなデータが蓄積されます。
- ビルドキャッシュ
- シミュレーターイメージ
- デバッグログ
- 過去のアーカイブ
これらが積み重なり、気づかないうちにストレージを圧迫します。
特に iOS Simulator のデータは非常に大きくなりやすい です。
まとめ
デバッグできなくなって、初めて容量を確認しました。
「システムデータ」は放置すると、簡単に100GBを超えます。
Flutter や iOS 開発をしている人は、
定期的にストレージ状況を確認することをおすすめします。
