AppCleaner 以外で選ぶ Mac アンインストーラー
同じアプリを 2 つのアンインストーラに渡すと、手元に来るファイル一覧は別物になります。 これはどちらかの不具合ではありません。各ツールが、どのファイルをアプリに属すると判断するか、どのパスに手を出さないか、管理者権限でどこまでやるか、という 3 つのルールをそれぞれ持っているからです。見える結果は、その 3 つで決まります。帰属の仕組みが分かると、アンインストーラ選びは機能比較ではなく、どのトレードオフを取るかの話になります。
仕組み:残留ファイルの帰属判定はこう動く
アンインストーラが「このファイルはアプリのもの」と判断する方法は主に 2 つで、失敗の向きが真逆です。
バンドル識別子マッチングは、アプリが宣言する reverse-DNS 文字列(例:com.vendor.app)を辿ります。macOS 自身も多くのファイルをその形で命名します。~/Library/Preferences/com.vendor.app.plist、サンドボックスコンテナ、Saved Application State の項目、WebKit や HTTPStorages のディレクトリなどです。精度が高く、誤検出はほとんど出ません。ただしアプリが自分の名前で付けたもの、そして多くのアプリが実際のデータを置く ~/Library/Application Support/VendorName のような識別子を持たないフォルダは取りこぼします。
表示名とベンダー文字列のマッチングは、そうしたフォルダを拾えます。同時に、たまたま同じ単語を共有しているだけのパスも拾います。Notes、Sync、Player のような名前のアプリは、まったく別のもののパスに一致しやすく、ベンダー接頭辞での一致は、まだ使っている同社の別アプリまで巻き込んできます。名前マッチは見つけ方は広く、誤りも多く、識別子マッチは見つけ方は狭く、正しさは高いです。2 つのスキャン結果が食い違う多くは、この 1 点に帰着します。
アプリのアーキテクチャが、どれだけ食い違いの余地があるかを決めます。サンドボックス化されたアプリは、通常 ~/Library/Containers/<bundle id> に主コンテナを持ちますが、App Group コンテナ、Application Scripts、共有キャッシュ、CloudKit、Keychain データも使うことがあります。サンドボックスは直接のファイルアクセスを狭めますが、1 ディレクトリに収まることを保証しません。非サンドボックスのアプリは、Application Support、Caches、Preferences、Logs、Saved Application State、WebKit ストレージ、Cookies に直接書き込めます。散らばりが広いほど、判定の差も大きくなります。
特に注意すべきカテゴリが 3 つあり、ツールの扱い方は機能一覧より多くのことを教えてくれます。
- App Group コンテナ(
~/Library/Group Containers配下)は、同じチームで署名されたアプリと拡張機能の間で意図的に共有されます。1 つのアプリを消したからといって削除すると、まだインストールされている別アプリが読んでいるデータを消すことがあります。名前マッチは、これらを喜んで提案します。 - LaunchAgents と LaunchDaemons(
~/Library/LaunchAgents、/Library/LaunchAgents、/Library/LaunchDaemons)は、単なるファイルではなくジョブです。ジョブを unload せずに plist だけ削除すると、取り残されたプロセスやログイン時のエラーが残り、システムレベルのパスには管理者権限が必要なので、権限のないツールはスキップするしかありません。 - 特権ヘルパー(
/Library/PrivilegedHelperTools)は、システム API 経由でインストールされた root 所有の実行ファイルで、先に unload すべきデーモンと対になっています。
システム拡張とネットワーク拡張は、ディスクに置かれているだけでなく、macOS に登録されています。ファイルを消すだけでは、信頼できる無効化手順にはなりません。macOS には無効化要求 API があり、拡張の識別子、承認状態、必要な順序を知っているのは、通常そのアプリ本体かベンダーのアンインストーラです。だから VPN クライアント、アンチウイルス、仮想化ソフト、オーディオドライバは、今もベンダー独自の削除ツールが必要になります。
食い違いは実際にどう見えるか
複数製品を出す開発者の、非サンドボックスアプリに 3 つのツールを向けてみてください。1 つはバンドルと識別子名のファイル数点だけを出します。1 つは Application Support フォルダと group コンテナを足します。1 つは launch agent も足します。どれも内部では一貫しており、危ないのは真ん中の提案です。画面下部の合計サイズは品質スコアではありません。その上にあるカテゴリの方が大事です。
選択肢
AppCleaner by FreeMacSoft
AppCleaner は無料の基準点です。アプリをウィンドウにドロップすると関連ファイルを集め、削除前にチェックリストで確認します。製品としてはそれだけですが、自己完結したアプリには十分です。
公式ページから知っておくべき事実が 1 つあります。ダウンロードページは macOS Mojave から Tahoe 向けにバージョン 3.6.8 を掲げていますが、リリースノート ではそのリリースが 2023 年 7 月付けです。互換性ラベルはバイナリより最近更新されていますが、公開リリースノートに新しいマッチングロジックは見当たりません。素直なアプリの残留を素早く消す用途に使い、group コンテナや特権ヘルパーは、どのスキャナーも権威として扱わず、自分で確認してください。
App Cleaner & Uninstaller by Nektony
Nektony の App Cleaner & Uninstaller は、専用アンインストーラの中でも最も幅広いです。公式ページは、隠し残留を含むアンインストール、すでに削除したアプリの残骸、Safari 拡張や設定パネルを含む拡張機能、ログイン項目やデーモンを含む起動プログラム、App Store とサードパーティアプリの更新をカバーしています。macOS 11 以降の対応と、最近の更新日が記載されており、積極的にメンテされています。
ライセンスは慎重に読む部分です。購入ページ はサブスクリプションと買い切りの両方を提供し、買い切りはマイナー更新を含み、メジャーアップグレードは別料金だと明記しています。1 台、2 台、5 台のティアが並んでいます。
AppZapper
AppZapper は今もオンラインで、今も買い切りライセンスを販売し、ドラッグ&ドロップのアンインストール、インストール済みアプリのブラウザ、ライセンスメモの保管場所を今も説明しています。著作権表示は今年まで続いています。
公式サイトが公開していないのは、バージョン番号、対応 macOS の範囲、変更履歴です。ダウンロードもバージョンなしのアーカイブです。放棄の証明ではありませんが、インストールするビルドが、いま動かしている macOS 向けに書かれたものだとベンダー側から確認できません。システムフォルダからファイルを消すツールにとって、そこが不確かであるのは好ましくありません。
Hazel by Noodlesoft
Hazel はアンインストーラではありません。ファイル自動化のルールエンジンで、App Sweep 機能がゴミ箱を監視します。手でアプリを捨てると、見つかったサポートファイルをチェックボックス付きで提示し、Keep All ボタンもあります。バージョン 6.1.2 は 2026 年 2 月に出荷され、macOS 13 以降が必要です。買い切りライセンスで、メジャーアップグレードは有料です。
境界はマーケティングより、マニュアルの方がはっきりしています。アプリに独自のアンインストーラがあるならそちらを使うこと、一部のアプリの削除にはアンインストーラだけが知る手順が必要であること、App Sweep が最も向いているのはドラッグで入れたアプリだ、とあります。Hazel は、削除の瞬間に残留を捕まえて溜め込ませたくない人向きです。何年も溜まった残骸を監査する道具ではありません。
ベンダー独自のアンインストーラ
Apple 自身の案内 Delete or uninstall apps on Mac では、非 Apple アプリに Uninstall アプリが同梱されていないかを確認するよう述べています。ログイン項目、拡張機能、アプリが別の場所に保存したデータを消す最良の方法だからです。
このカテゴリは、システム拡張やネットワーク拡張の無効化、特権デーモンの正しい順序での unload、デバイス認可の解除、インストーラレシートの削除を、いちばんよく知っている可能性が高いです。汎用のファイルスキャナーはそのライフサイクルを知らず、一致するパスを消すことが同等だと装うべきではありません。
Mole の Software タブ
Mole は、アプリ更新、起動項目、アンインストールを、多くの残留カテゴリにわたって 1 つの画面で扱います。iOS ラッパーアプリにラベルを付け、システム重要バンドルを除外し、古い孤立残骸を事前選択する前に保守的な経過日数ルールを適用し、Dock の該当項目を消し、Applications 内の root 所有バンドルにはセッションごとに 1 回の管理者認可を取ります。検出と確定削除は別ステップで、削除するものはすべてシステムのゴミ箱経由なので、誤った判断も復元できます。ドライバ、カーネル/システム拡張、VPN コンポーネント、アンチウイルスを含むソフトについては、ベンダーのアンインストーラの代わりにはなりません。ライセンスは macOS 14 以降、2 台分の買い切り+ライフタイム更新、スキャンは常に無料、各破壊的ツールはライセンス前に 2 回使え、ターミナルユーザーは無料のオープンソース CLI を mo uninstall で使えます。
一覧比較
| 選択肢 | 残留の見つけ方 | アンインストール以外の範囲 | ライセンス形態 |
|---|---|---|---|
| AppCleaner | 1 つのアプリをドロップして関連ファイルを照合 | なし | 無料、寄付 |
| App Cleaner & Uninstaller | インストール済みアプリと古い残骸をスキャン | 拡張、起動項目、更新 | サブスクまたは買い切り |
| AppZapper | ドラッグ&ドロップとアプリブラウザ | ライセンスメモの保管 | 買い切り、公開バージョンなし |
| Hazel | 削除時にゴミ箱を監視 | 一般的なファイル自動化 | 買い切り、メジャー有料 |
| ベンダーのアンインストーラ | 自前のインストールマニフェストを把握 | 拡張、デーモン、ライセンス処理 | アプリに同梱 |
| Mole | バンドル識別と残留カテゴリ | 更新、起動項目 | 買い切り、ライフタイム更新、2 台 |
安全な作業順
- まずベンダーのアンインストーラを探します。ドライバ、拡張、VPN コンポーネント、アンチウイルスを入れたアプリなら、ここで止めてそれを使います。
- アプリがまだ動いているうちにサインアウトや認可解除を行い、残したいデータを書き出します。
- アプリと、見えるヘルパーを終了します。
- スキャナーを走らせ、合計ではなくカテゴリを読みます。キャッシュはだいたい再生成でき、環境設定と保存状態はリセットするつもりがあるときだけ妥当です。Application Support にはユーザーのローカルデータベースが入っていることがあります。
- 同じ開発者の他のインストール済みアプリが使っていないと分かるまで、group コンテナには触れません。
- launch 項目は手で plist を消さず、ツールに unload させ、
/Library配下は管理者プロンプトを想定します。 - 1 日ほど普通に Mac を使って問題がなければ、ゴミ箱を空にします。
比較表が示唆するより、無料ツールが正解になる場面は多いです。在庫、更新、起動項目を 1 か所で扱うことで本当に時間が浮くほど、アプリを頻繁に引退させるときだけ、広さを買ってください。手作業なら、共有データを失わずにアプリをアンインストールする手順 が同じ領域をカバーしており、先に そもそもクリーンアップユーティリティが要るか を決めておく価値があります。