「〜は壊れているため開けません」と表示されて起動できないアプリを修復する方法
アップデートされることがなくなってしまった古いアプリをダウンロードしてきて使おうとした時に起こる現象なのですが、起動しようとしても以下のようなダイアログが出て起動すらできなく、アプリをゴミ箱に捨てるように促されてしまいます。
ダイアログには「〜は壊れているため開けません。ゴミ箱に入れる必要があります。」という文言が表示されますが、審査基準が厳しくなったGatekeeper(マルウェアなどの悪意のあるアプリの実行を防いでくれる機能)によってアプリのパッケージ内に拡張属性がおかしいファイルが含まれていると弾かれるようです。
古いアプリだけれど、どうしても使いたいものがあったので解決方法を探していると以下のページに行き当たりました。
ファイルの拡張属性を剥ぎ取るxattr
コマンドというものがあり、それを問題が起きているアプリに適応させるという方法です。
具体的には以下のようなコマンドをターミナルで実行。
xattr -rc /Applications/LegacyAwesome.app
「/Applications/LegacyAwesome.app」部分は修復したいアプリのパスを当てはめるか、アプリ自体をターミナルウィンドウにドラッグ&ドロップするとパスが入力できます。
以上のコマンドをAppleScriptでラッピングしたものも用意しましたので、黒い画面には一切触れたくないという人はご利用ください。