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をオンにしておけば存在をほぼ気にせずに使えてオススメです。
そもそもアプリケーションを頻繁にインストール・アンインストールする人も少ないと思いますが、チリも積もれば……ですし、使っていない方は試してみてください。
特にアプリケーションのインストールし直しで便利だと思います。


macOS 11 Big Sur以降メニューバー右上に固定表示されてしまう時計表示を目立たなくする
iStat Menusの「ネットワーク」アイコン表示と設定
Visual Studio Codeでウインドウタイトルバーをカスタマイズする方法
Chrome拡張機能「PocketTube」を使って、YouTubeの登録チャンネルをグループ分けして管理する
iTerm2でよく使うアクションやスニペットの設定ができる環境設定の「Shortcuts」タブ
Slackにカスタム絵文字を追加する方法
Path Finderのサイズブラウザ機能で容量の大きいファイルを探して整理する方法
macOSの環境をすぐに復元したり、別Macと同期するために必要な情報をまとめた「アプリ設定フォルダ」を作る
MacでCPUやメモリ・ネットワークなどの状態をメニューバーに表示させる「iStat Menus」
Google ChromeでBasic認証のダイアログが一瞬で消えて認証できないときは拡張機能を確認!
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
AppCleanerでMacアプリを関連ファイルごと完全に削除する
操作に没頭できる!Firefox版 Arcのようなブラウザ「Zen Browser」
chezmoi(シェモア)で始めるdotfiles管理
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」
Keyboard Maestroの変数基礎
Neovimを使い始める最初の一歩として便利な「LazyVim」
ウェブサイトをmacOSアプリとしてラッピングする「Unite Pro」
Keyboard Maestroの「Macro Debugger」で複雑なマクロのデバッグを行う方法
無料版でも高機能なランチャーアプリ「Raycast」の基本機能と環境設定
OnyXでターミナルを使わずにmacOSの詳細設定を行う