AppCleanerでMacアプリを関連ファイルごと完全に削除する

macOSでアプリをアンインストールするときは、アプリケーションフォルダから削除してゴミ箱に移動させ、ゴミ箱を空にして完全削除するのがOS標準のやり方です。
しかし、この方法だとアプリ本体(.appファイル)しか削除されません。
設定ファイルやキャッシュ、サポートファイルなどがある場合に ~/Library/ 配下にそのまま残り続けてしまいます。
残ったファイルは通常の操作では目に触れないので気づきにくいですが、ストレージを無駄に占有しますし、同じアプリを再インストールしたときに古い設定が引き継がれてしまうこともあります。
そこで活用したいのが、アプリの関連ファイルごとまとめて削除してくれる「AppCleaner」です。
他の人と会話したときにその話題になり、「意外と知らない人がいる」「そもそも言われないと知らなくて当然だよな」となったので、今回はAppCleanerの使い方と設定についてまとめます。
AppCleaner

AppCleanerは、アプリをドラッグアンドドロップするだけで、関連ファイルもまとめて検出・削除してくれる無料のMacアプリです。
とにかくシンプルさが魅力で、アプリのアンインストールだけに特化しています。
類似アプリに「Pearcleaner」がありますが、現在事実上の無期限の更新停止状態になっています。
また、Homebrewを使っている人であれば、Homebrewのアンインストールコマンドに--zapオプションを付けて実行すると、関連ファイルも含めて完全削除できます。
brew uninstall --zap アプリ名これでも良いかもしれませんが、やはりGUIで簡単に削除する方法があった方が便利でしょう。
インストール方法
公式サイトからZipファイルをダウンロードし、解凍してアプリケーションフォルダに移動すればインストール完了です。Mac App Storeには公開されていません。
Homebrew Caskでもインストールできます。
brew install --cask appcleanerただし、Homebrew には app-cleaner(ハイフンあり)という別の有料アプリも存在するため、コマンド実行時に綴り間違いがないか注意が必要です。
フルディスクアクセスの設定
AppCleanerがすべての関連ファイルを検出するためには「フルディスクアクセス」の権限が必要です。
アプリ初回起動後に[システム設定]→[プライバシーとセキュリティ]→[フルディスクアクセス]からAppCleanerを有効にしておきましょう。

この権限がないと、~/Library/Containers/ 配下のファイルなど一部の関連ファイルを削除しきれないことがあります(その場合は削除できなかったことが分かるエラーメッセージが表示されます)。
基本的な使い方
使い方はシンプルで、AppCleanerを起動してウインドウに削除したいアプリをFinderからドラッグアンドドロップします。

関連ファイルを検索し、検出されたファイルの一覧が表示されます。
内容を確認して「Remove」ボタンを押すと、アプリ本体と関連ファイルがまとめてゴミ箱に移動します(デフォルトでチェックが入っていない項目もあるので注意)。
削除前に各ファイルのチェックボックスをオフにすることで、特定のファイルだけ残すことも可能です。
また、「Remove」を押してもゴミ箱に移動するだけなので、ゴミ箱を空にする前であれば復元できます。
試しに仮想環境を構築するDockerをAppCleanerにドラッグアンドドロップしてみました。
Docker.app自体は2.45GBとかなりファイルサイズが大きいのですが、コンテナファイルなども全部含めると28.02GBでした。

Dockerが仮想環境を構築するツールなので仕方ありませんが、仮にDocker.appだけを削除すると、それ以外の25GB以上の容量は残ったままになってしまいます。
普通のアプリだと微々たるものですが、AppCleanerを使えばこのような事象を防止できます。
関連ファイルの検出対象
AppCleanerが検出する関連ファイルは、主に ~/Library/ 配下に保存されているものです。
ざっくりフォルダパスのフォルダを見ると、何が保存されているファイルか分かります。
| ファイルの種類 | 保存場所 |
|---|---|
| 設定ファイル(.plist) | ~/Library/Preferences/ |
| キャッシュ | ~/Library/Caches/ |
| サポートファイル | ~/Library/Application Support/ |
| コンテナ | ~/Library/Containers/ |
| アプリの状態保存 | ~/Library/Saved Application State/ |
| ログインアイテム | ~/Library/LaunchAgents/ |
| Cookie | ~/Library/Cookies/ |
また、Macアプリを使っていると、「アプリの動作がおかしいので、インストールし直したい」という目的でアプリを削除する場合があります。
その場合、キャッシュやCookie、アプリ設定が原因の場合があります(むしろインストールし直しで直るならその可能性が高い)。
関連ファイルも一度削除してキレイな状態にしないと、アプリケーション本体だけ削除してインストールしても、それ以外の関連ファイルが変わらないままなので、インストールし直しの意味がありません。
インストールし直しで関連ファイルも含めてキレイにしたい場合も、AppCleanerを使うようにしましょう。
SmartDeleteで自動検出
他にも、アプリがゴミ箱に移動したタイミングで自動的に関連ファイルを検出してくれる「SmartDelete」という機能があります。
Finderでアプリをゴミ箱に入れるだけで、下記のようなAppCleanerポップアップが表示されて、関連ファイルの一覧を表示してくれます。

わざわざAppCleanerを起動する手間がなくなるので、常に削除をするときはアプリ関連のファイルも一緒に削除したい場合はオンにしておいた方が良さそうです。
設定方法は、AppCleanerの環境設定(command + ,(カンマ))で「SmartDelete」タブを開き、有効にするだけです。

環境設定
General

起動中のアプリは削除できないように保護したり、削除したくないアプリを管理する画面です。
リストに追加したアプリは、AppCleanerで削除できなくなります。誤って削除したくないアプリがある場合は、ここに追加しておくと安心です。
また、Adobe製品やATOKなど、独自のアンインストーラーが用意されているアプリの場合はそちらを利用するようにしましょう。
なお、macOSに最初から組み込まれているシステムアプリ(Finder、Safari、Mailなど)は、Protected Appsに追加しなくてもAppCleanerからは削除できません。
例えばFinderは /System/Library/CoreServices/ 配下にあってSIP(System Integrity Protection)という仕組みで保護されており、SafariやMailは /Applications/ 配下にあるもののmacOSの必須コンポーネントとして削除が制限されています。
SmartDelete

SmartDeleteのオン・オフを切り替えるタブです。
前述の通り、オンにしておくとFinderでアプリをゴミ箱に入れたときに自動的に関連ファイルを検出してくれます。
SmartDeleteが有効な状態でアプリをゴミ箱に入れると、AppCleanerのポップアップが自動的に表示されます。
関連ファイルの一覧とチェックボックスが出るので、確認してから「Remove」を押す流れになります。
Updates

自動アップデートの確認設定です。
定期的に新しいバージョンがないか確認してくれます。
まとめ
関連ファイルを簡単に削除できますし、いままであまり意識することなく当たり前のように使用していたアプリです。
シンプルで使いやすいですし、SmartDeleteをオンにしておけば存在をほぼ気にせずに使えてオススメです。
そもそもアプリケーションを頻繁にインストール・アンインストールする人も少ないと思いますが、チリも積もれば……ですし、使っていない方は試してみてください。
特にアプリケーションのインストールし直しで便利だと思います。



新しいMacBook Proを購入して移行するときにやること|M1 Macの基本セットアップとアプリ一括インストール編
MacでOutlookの「.msg」拡張子のファイルを開く方法
Visual Studio Codeのエクスプローラーを見やすくするちょっとしたカスタマイズ
Path Finderのサイズブラウザ機能で容量の大きいファイルを探して整理する方法
macOS 11 Big Sur以降メニューバー右上に固定表示されてしまう時計表示を目立たなくする
OnyXでターミナルを使わずにmacOSの詳細設定を行う
Obsidianを使った「自己流PKM」で行う知識トレーニング
iTerm2で画面の見た目や細かい設定などを「プロファイル」単位で保存・管理する環境設定の「Profiles」タブ
無料のSVGビューワーの「Gapplin」でSVG画像を確認する
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Default Folder Xで保存ダイアログ内のファイルリストにフォーカスする方法
Obsidianで整理した知識をAnkiで定着させる方法
Figma × Keyboard Maestroでどこまで効率化できる?
マウス操作の完成度が高いウインドウリサイズアプリ「Magnet」
Macで複数ディスプレイを使っている場合に便利な設定集
AppCleanerでMacアプリを関連ファイルごと完全に削除する
chezmoi(シェモア)で始めるdotfiles管理
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」
Keyboard Maestroの変数基礎