Mac の Library Containers:アプリデータとキャッシュの違い
~/Library/Containers に大きなフォルダがあっても、丸ごと削除する前に所有するアプリと内容を調べます。サンドボックスのコンテナにはキャッシュだけでなく設定、データベース、書類も入るため、どの子フォルダが大きく、その内容を再取得できるかが判断の出発点です。
Library Containers に入っているもの
Apple の App Sandbox の説明によると、サンドボックス化されたアプリの初回起動時に macOS が ~/Library/Containers にコンテナを作ります。アプリ本体とは別にある、そのアプリのローカルデータ用のホームと考えられます。
内部で確認することが多いのは Data/Library です。Apple のファイルシステムガイドは、サポートデータ、環境設定、キャッシュを区別しています。親フォルダの大きさより用途を先に見ます。
| コンテナ内の場所 | 用途 | 整理するときの判断 |
|---|---|---|
| Data/Library/Caches | アプリが再生成できるはずのデータ | 特定でき、再取得できるキャッシュだけを検討 |
| Data/Library/Application Support | データベースなどを含むサポートデータ | アプリのデータを消す意図がなければ保持 |
| Data/Library/Preferences | アプリの環境設定 | キャッシュ整理では保持 |
| Data/Documents | アプリが保存する書類 | 保持、または先に書き出してバックアップ |
これは ~/Library/Group Containers とは別です。共有 App Group の所有関係は Group Containers のガイドで扱っています。
変更せずにフォルダを開く
Finder の移動 › フォルダへ移動で次のパスを貼り付けます。操作は Apple のフォルダ移動の説明にあります。
~/Library/Containers
~ は自分のホームフォルダです。コンテナと子フォルダを一つずつ調べ、変更前に正確な場所とサイズを記録します。読めないフォルダは中身が不明なだけで、空とは限りません。
Apple のサンドボックス文書には、macOS 14 以降では別のアプリのコンテナへのアクセス時に許可を求めることがあると記されています。拒否されたら権限を変えたり削除コマンドを使ったりせず、そこで止めます。
Bundle Identifier でアプリを照合する
逆ドメイン形式の名前は手掛かりであり、削除してよいという意味ではありません。候補となるインストール済みアプリの表示名だけでなく、識別子を確認します。
- Finder で候補のアプリを見つけ、コンテキストメニューからパッケージの内容を開きます。Apple のバンドルガイドにこの方法が記載されています。
Contents/Info.plistを探し、編集せずに読みます。CFBundleIdentifierとコンテナ名を比べます。キーの定義は Apple のプロパティリストのリファレンスにあります。- 一致しなければコンテナを残し、提供元の案内を確認します。ヘルパーや機能拡張が独自の識別子を持つ場合もあります。
名前を揃えるためにコンテナを改名したり、アプリのプロパティリストを編集したりしないでください。不透明な名前や所有者不明の状態では、推測だけで削除できません。
大きくなった場所を調べる
操作を選ぶ前に子フォルダを比べます。同じコンテナ内でも、キャッシュが大きい場合と書類の保存場所が大きい場合では対応が違います。
Caches が大半なら、まずアプリ内のキャッシュやストレージ管理を探します。Application Support や Documents が大半なら、アプリ内でダウンロード、添付、保存書類を確認し、不要と分かった内容だけをそこで削除します。
メール、メッセージ、メモなどは個人データの保存先として扱い、使い捨てのキャッシュだと考えないでください。コンテナに全データが揃っているとも、再ログインですべて戻るとも限りません。
一般的な判断は削除できる Mac のキャッシュで確認できます。今回は特定したアプリだけを調べ、無関係な Library フォルダへ対象を広げません。
一つのキャッシュを変更して確認する
アプリの説明や管理機能で再生成できると確認でき、元ファイルやダウンロード先も利用できる場合だけ進めます。Apple は Caches を再生成可能なデータと定義していますが、フォルダ名だけではアプリが正しく使っている証拠になりません。
- アプリを終了し、再取得できないデータには別のバックアップを残します。
- 確認したキャッシュの子フォルダだけをゴミ箱へ移し、親コンテナとほかのデータは残します。
- アプリを開き、実際の書類や作業を試します。オフラインで必要な内容も確認します。
- 同じフォルダを測り直し、確認が済むまで移した項目を保持します。
ゴミ箱へ移しただけでは空き容量は増えません。Apple の削除と復元の説明は、項目が残る間の戻し方を案内しています。問題が出たらアプリを終了して元の項目を戻し、新しく作られたデータは確認せずに上書きしないでください。
通常の使用でキャッシュは再び増えます。再生成直後から大きければ、さらに消しても同じ作業を繰り返すだけかもしれません。削除範囲を広げず、アプリが保持する内容を見直します。
アプリのデータを消さないならコンテナ全体を残す
インストール済みアプリのコンテナ全体を消すと、ローカルのホームを取り除くことになり、設定のリセットや保存データの消失につながります。空のコンテナが作られても、以前のデータベースや書類は戻りません。
アンインストール済みアプリの残りかもしれませんが、見覚えのあるアプリ名がないだけでは未使用と判断できません。所有者、残るヘルパーや機能拡張、再インストール時に使いたいデータを確認します。
必要なデータは独立したバックアップやアプリ対応の書き出しで残します。アカウントの同期はバックアップの代わりにならず、再インストールもローカル専用データの復元を保証しません。ゴミ箱から戻せるのは項目がそこに残る間だけです。
Mole が扱う範囲
Mole Mac のクリーンは、アプリのコンテナ内にある Data/Library/Caches の適格な子項目をアプリのキャッシュとログに表示できます。この経路にはフルディスクアクセスが必要で、安全性とホワイトリストを確認し、Containers 全体をキャッシュの対象にはしません。
汎用のコンテナキャッシュ走査はメール、メッセージ、メモのコンテナを除外し、削除時のガードにも保護パスがあります。アンインストール走査では選んだアプリとコンテナの残存データを関連付けるため、キャッシュとは別にアプリデータとして確認します。未選択は確認待ちであり、選択後も中身が保存される保証ではありません。
よくある質問
Library Containers の中をすべて削除できますか?
できません。キャッシュとアプリデータが混在します。所有者を一つ特定し、置き換え可能なキャッシュの子項目だけを調べ、親ディレクトリは残します。
アプリを再インストールするとコンテナは戻りますか?
新しいコンテナは作られても、削除した設定、書類、ローカルのデータベースは復元されません。利用できるバックアップ、書き出し、またはゴミ箱に残った元の項目が必要です。
Mole の表示がコンテナ全体より小さいのはなぜですか?
適格なキャッシュの子項目はコンテナ全体より狭い範囲です。アクセス権、安全性、ホワイトリストもクリーンの表示に影響するため、アプリデータ全体の合計ではありません。