macOSで「"App"は破損しているため開けません」を修正する方法

beginner🍎 macOS2026-05-24| macOS Catalina (10.15), Big Sur (11), Monterey (12), Ventura (13), Sonoma (14) — インターネット経由のダウンロードやUSB/AirDropで転送されたアプリに適用

Error Message

"App" is damaged and can't be opened. You should move it to the Trash.
#macos#アプリの破損#gatekeeper#検疫

要約 (TL;DR)

ターミナルで以下を実行してから、アプリを再度起動してみてください。

xattr -cr /Applications/YourApp.app

これにより、macOSがアプリに付与した隔離(クアランティン)フラグが削除されます。ほとんどの場合(90%程度)はこれで解決します。

実際に何が起きているのか

インターネットからダウンロードしたすべてのファイルには、com.apple.quarantine という非表示の拡張属性(タグ)が付与されます。macOSはこのフラグを自動的に追加するため、ユーザーが目にすることはありません。アプリをダブルクリックすると、Gatekeeperがそのフラグを読み取り、Appleの公証データベースと照らし合わせてアプリのコード署名を確認します。

このチェックに失敗すると、エラーが発生します。主な原因は以下の通りです:

  • アプリがMac App Store以外からダウンロードされ、公証(Notarization)を受けていない
  • 隔離属性は存在するが、署名チェックでエラーが返される(古いアプリや直接配布されているアプリでよく見られます)
  • アプリが別のマシン、USBドライブ、またはAirDrop経由でコピーされた際に、隔離メタデータが破損した
  • macOSのアップデートによりGatekeeperのルールが厳格化され、以前は問題なく動作していたアプリがブロックされた

アプリが実際に破損していることはほとんどありません。バイナリ自体は正常であり、macOSが過剰に警戒しているだけです。

解決策1:隔離属性を削除する(最初に試すべき推奨ステップ)

ターミナルを開き、以下を実行します:

xattr -cr /Applications/YourApp.app

-c フラグはすべての拡張属性を削除します。-r フラグは再帰的な処理を指定するもので、トップレベルのパッケージだけでなく、.app バンドル内のすべてのファイルに適用されます。

アプリが /Applications フォルダにない場合は、パスを調整してください:

xattr -cr ~/Downloads/YourApp.app

ショートカット:xattr -cr (最後にスペースを入れる)と入力し、.app ファイルをターミナルウィンドウに直接ドラッグ&ドロップします。これでパスが自動的に入力されます。

確認: 隔離属性が消えたことを確認します:

xattr /Applications/YourApp.app

出力結果に com.apple.quarantine が表示されなければ、フラグは削除されています。アプリを起動してみてください。

解決策2:システム設定の「このまま開く」を使用する

ターミナルを使いたくない場合は、GUIからの操作も可能です:

  • アプリを開こうとすると、macOSがブロックしエラーダイアログが表示されます
  • システム設定 → プライバシーとセキュリティ(古いmacOSの場合は システム環境設定 → セキュリティとプライバシー)を開きます
  • 「プライバシーとセキュリティ」セクションの一番下までスクロールします
  • 「"YourApp"は開発元を確認できないため、使用がブロックされました」といったメッセージが表示されています
  • このまま開くをクリックします
  • 確認画面が表示されるので、開くをクリックします

「このまま開く」をクリックすると、Gatekeeperに恒久的な例外として登録されます。以降、そのアプリでこの確認が表示されることはありません。

解決策3:右クリックで開く(初回起動時のチェックをバイパス)

ターミナルを使わなくても、右クリックによる回避策が有効な場合があります:

  • アプリを右クリック(またはControlキーを押しながらクリック)します
  • コンテキストメニューから開くを選択します
  • 確認ダイアログで開くをクリックします

これは一度だけ行えば十分で、その後は通常通り起動できるようになります。ただし、エラーに「破損している」と明記されている場合はこの方法では解決しないことが多いため、その場合は解決策1の方が確実です。

解決策4:アプリを再ダウンロードする

これらを試しても解決しない場合は、アプリのアーカイブ自体が本当に破損している可能性があります:

  • 現在のコピーを削除し、公式サイトから新しくダウンロードし直してください
  • .dmg.zip 形式の場合は、開発者が公開しているチェックサムと比較してください
# macOS標準コマンド
shasum -a 256 ~/Downloads/YourApp.dmg

# 代替案(Homebrew経由でGNU coreutilsをインストールしている場合)
sha256sum ~/Downloads/YourApp.dmg

出力された値を開発者のダウンロードページにあるチェックサムと比較します。一致しない場合はファイルが破損しているため、再度ダウンロードしてください。

解決策5:一時的にGatekeeperを無効化する(慎重に使用してください)

開発環境で署名のない社内ツールをまとめて実行する場合などは、Gatekeeperをグローバルに無効化できます:

sudo spctl --master-disable

これにより、システム設定 → プライバシーとセキュリティ → ダウンロードしたアプリケーションの実行許可の設定が「すべての場所」に切り替わります。AppleはこのオプションをUI上では非表示にしていますが、CLIからは設定可能です。

完了したら再度有効にする:

sudo spctl --master-enable

Gatekeeperを無効にしたままにしないでください。これは署名のないマルウェアに対する第一の防御策です。

アプリの署名を自分で確認する

Gatekeeperがなぜアプリを拒否しているのか正確に知りたい場合は、以下の3つのコマンドが役立ちます:

# コード署名を確認
codesign --verify --deep --strict --verbose=2 /Applications/YourApp.app

# 公証ステータスを確認
spctl --assess --verbose /Applications/YourApp.app

# すべての拡張属性をリスト表示
xattr -l /Applications/YourApp.app

spctlrejected(拒否)を返した場合、そのアプリは公証されていません。解決策1または2を試してください。codesign が無効な署名エラーを表示した場合は、バンドル自体が破損している可能性があるため、再ダウンロードが必要です。

Appleシリコン(M1/M2/M3)でこの問題が多く発生する理由

MシリーズのMacは、以前のIntel Macよりも厳格なGatekeeperチェックを行います。Appleシリコン上でIntel専用アプリを動かすにはRosetta 2を経由する必要がありますが、さらに隔離フラグの問題が重なると、アーキテクチャの不一致に加えて「破損」エラーが発生します。この場合も解決策1で解決可能です。ただし、開発者がユニバーサルバイナリやAppleシリコンネイティブ版を提供していない場合、隔離フラグをどう処理してもアプリが動作しない可能性があります。

確認作業のまとめ

  • xattr -cr の実行後:xattr /Applications/YourApp.app を実行し、com.apple.quarantine が表示されないことを確認
  • 「このまま開く」の実行後:ダイアログが表示されずにアプリが起動することを確認
  • 再ダウンロード後:shasum -a 256 の出力が開発者のサイトにあるチェックサムと一致することを確認

Related Error Notes