Mac のディスク容量が足りない!
容量不足について
Xcode を利用している方でディスクの容量不足の警告が出たら、ほぼ間違いないく Xcode が作成する大量のキャッシュが原因です。
他にプログラムをインストールしたり、大量にダウンロードをした記憶が無いのに、ディスクの容量が足りませんの警告が発生した場合はまずXcode を疑ってみましょう。
特に開発期間が長く、多くのプロジェクトを開発してきた方で、今までにクリアしたことがない方は数十から数百ギガの空き容量を確保することができます。
※ 作業には root の権限で実行しますので、操作時は注意して実行してください。
※ 環境によってはディレクトリの構造が変更されていることもありますので判らない場合は実行しないようにして下さい。
※ 下記を実行後、不具合、不動作が発生しても一切責任は取れません。ご理解の程実施をお願い致します。
※ コマンド間違えると消してはいけないファイルが消えてしまいます。実行時は慎重に実行してください。
3つの原因
原因は主に3つあります。
- 過去のアーカイブフィアル
- プロジェクト開発時のキャッシュファイル
- シミュレーターのキャッシュファイル
上記の3つがディスクを大量に占領しています。
知っていれば、ファイルを削除することで容量を数十G単位で確保できます。
知らないと、外付けディスクを購入してしまったり、新しいMac を購入してしまいます。
無駄なお金を消費してしまった方もいるので一度実行してみましょう。
ディスク容量の確認
実施後にどれだけ節約されたかを確認するために、現在のディスク使用状況を確認しましょう。
ディスクユーティリティ で確認する場合
「アプリケーション」 → 「ユーティリティ」 → 「ディスクユーティリティ.app 」で起動します。
「内蔵」→「Macintosh HD」を選択して「空き」容量を確認できます。
データ削除後に再度これにて確認することができます。
更新されない場合はアプリを再起動してみましょう。
ターミナルのコマンドで確認する場合
ターミナルを利用して下記のコマンドを実行してください。
「df」と入力してリターンキーを押します。
※ ターミナルアプリは
アプリケーション → ユーティリティ → ターミナル.app で起動できます。
$ df Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on /dev/disk0s2 488555536 415767912 72275624 86% 52034987 9034453 85% / devfs 370 370 0 100% 640 0 100% /dev map -hosts 0 0 0 100% 0 0 100% /net map auto_home 0 0 0 100% 0 0 100% /home /dev/disk1s1 999970944 218955072 781015872 22% 0 0 100% /Volumes/HD
上記の例ですと、「%iused」の項目が 85% と表示されています。
これが、ハードディスクの利用率の割合になります。
実行前にこちらのコマンドを叩いておくと容量削減後にこのパーセンテージが減ったことを確認できます。
削除後に再度「df」を実行して容量を確認してください。
開発プロジェクトごとのキャッシュ
プロジェクト、ワークスペースを開くごとに Xcode はキャッシュを作成します。
多くのプロジェクトを開発したり、開くことで増えます。
過去に開いたプロジェクトのキャッシュも残り自動で削除されませんので日々増えます。
現在利用していない古いプロジェクトのキャッシュは必要ありません。
また、消しても再度プロジェクトを開いた時に作成されますので問題ありません。
定期的に全てを削除することで古いキャッシュを削除しましょう。
※ キャッシュをクリアすると Xcode は次にプロジェクトを開いた時に新しくキャッシュを作成します。初回はキャッシュを作成するのに少々時間がかかりますが(とは言っても数分です。)、他のいらないキャッシュをクリアすることで大量の容量を確保できますので、定期的なクリアをオススメします。
- 念のため、Xcode を完全に終了してください。
- ターミナルを開いて、下記のコマンドを実行します。
※ パスワードを聞かれますので root のパスワードを入力してください。ほぼログイン時のパスワードで問題ありません。
※ ターミナルアプリは
「アプリケーション」 → 「ユーティリティ」 → 「ターミナル.app」で起動できます。
sudo rm -rf ~/Library/Developer/Xcode/DerivedData/*
場合によっては数十G単位のファイルを削除できます。
過去のアーカイブ削除
iTunes Connect へアプリの ipa をアプロードをするためにアーカイブを作成するとそれだけ容量を消費します。
いらないアーカイブは削除しましょう。
- Xcode を開きます。
- 「Window」→「Organizer」を選択すると「Archives」一覧が表示されます。
- 過去にアーカイブしたアプリのリストが左(iOS Apps)に表示されますので選択します。
- 選択するとそのアプリ個々のアーカイブが一覧に表示されますのでいらないアーカイブを選択して「Delete」キーを押します。
- 「Delete」キーを押すと 「Delete Archive」と聞かれますので 「Delete」を選択して削除します。
※ 既にリリース済みのアーカイブ、リリースしていないアーカイブは基本的に必要ありませんので削除して問題ありません。ただし、過去の アーカイブ をどうしても取って置いて動作確認等をしたい場合等はリムーバルディスク等に移動しましょう。
・アーカイブの場所は下記にありますので、移動する場合はここからムーブしましょう。
~/Library/Developer/Xcode/Archives
・ターミナルを開いて下記のコマンドで一度に削除することも可能です。
sudo rm -rf ~/Library/Developer/Xcode/Archives/*
※ パスワードを聞かれますので root のパスワードを入力してください。ほぼログイン時のパスワードで問題ありません。
※ ターミナルアプリは
「アプリケーション」 → 「ユーティリティ」 → 「ターミナル.app」で起動できます。
シミュレータのキャッシュ削除
Xcode のシミュレーターで開発をしているとバージョンごとに大量の設定ファイル、キャッシュを保持しています。
削除するとシミュレーターの設定がリセットされますが、そんなに設定する項目は多くないので再度設定すれば問題ありません。
最近利用していないバージョンの設定、キャッシュファイル等は削除しても問題ないでしょう。
※ 設定、キャッシュファイルの削除を実行するとシミュレーターがリセットされます。設定を削除したくない場合は削除しないでください。現在利用していないバージョンのシミュレーター設定、キャッシュを削除しましょう。
大量のディスク容量を確保できますので、再設定しましょう。
- 念のため、Xcode を完全に終了してください。
- ターミナルを開いて、下記のコマンドを実行します。
※ パスワードを聞かれますので root のパスワードを入力してください。ほぼログイン時のパスワードで問題ありません。
※ ターミナルアプリは
「アプリケーション」 → 「ユーティリティ」 → 「ターミナル.app」で起動できます。
# 全てのシミュレーターのキャッシュを一度で削除する場合 sudo rm -rf ~/Library/Developer/Xcode/iOS\ DeviceSupport/* # iOS 9 のキャッシュを削除する場合 sudo rm -rf ~/Library/Developer/Xcode/iOS\ DeviceSupport/9* # iOS 10 のキャッシュを削除する場合 sudo rm -rf ~/Library/Developer/Xcode/iOS\ DeviceSupport/10* # iOS 11 のキャッシュを削除する場合 sudo rm -rf ~/Library/Developer/Xcode/iOS\ DeviceSupport/11* # iOS 12 のキャッシュを削除する場合 sudo rm -rf ~/Library/Developer/Xcode/iOS\ DeviceSupport/12* # iOS 13 のキャッシュを削除する場合 sudo rm -rf ~/Library/Developer/Xcode/iOS\ DeviceSupport/13* # 細かいログ(容量的にはそれほど大きくない) sudo rm -rf ~/Library/Developer/Xcode/iOS\ Device\ Logs/iOS\ Device\ Logs\ *
これにて、場合によっては数十G単位のファイルを削除できます。
※ こちらのシミュレーターのキャッシュを削除した場合、シミュレーターの設定がリセットされますので、利用していないシミュレーターのキャッシュのみを削除するようにしましょう。ただし、こちらの方法にて削除リセットをすることでいらないキャッシュをクリアすることができ容量を確保することができます。
※ 上記で削除したキャッシュはシミュレーター起動時に初期化されます。
削除後の確認
最初に実施した「ディスク容量の確認」で削除後の状態を確認してください。
再び、「df」コマンドを実行して、削除前の状態と比較してみましょう。
また、「ディスクユーティリティ.app」でも容量が減ったことが確認できます。
それでも容量が減らない場合は、Xcode 以外のファイルが容量を圧迫していますので、別途調査が必要です。
いかかでしょうか?開発期間が長く、今までにキャッシュをクリアしたことがない方は想像以上に容量が増えたことを確認できます。
これにて容量を確保出来ない場合は、他が原因で圧迫しているので Xcode 以外のファイルを調査してください。
最後に
以前に私は毎日開発して半年〜1年位で容量不足になり上記を実行したら100ギガ位確保することができました。
MacBookAir の SSD、128G や 256G で開発している方は、容量不足が頻発に発生するので、定期的にこちらを実行することをおすすめします。