macOSの“XXX.app” is damaged and can’t be opened. You should move it to the Trash.への対処
macOS 11 Big SurでObeo Designer CommunityというUMLの作成ソフトをダウンロードして実行しようとすると以下のエラーが表示された。
以前にも似たようなエラーが出たことがあり、その時は面倒だったのでインターネットで調べた情報をそのまま適用してxattrコマンドを実行して対応した。
今回再発したので、もう少し調べて記録として残すことにした。
この警告文は2012年のMac OS X Leopardから搭載指されているGateKeeperというセキュリティー機構によるものらしい (Sierraで厳しくなった「Gatekeeper」と付き合う – 新・OS X ハッキング!(187) | マイナビニュース)。Webブラウザーなどからファイルをダウンロードすると、自動的にそのダウンロード時刻・URL・開発元などの情報と一緒に隔離情報 (com.apple.quarantine
) がファイルの拡張属性に記録される。この拡張属性で警告するかどうか判断しているらしい。なお、quarantineという英単語が隔離・検疫を意味するらしい。
この拡張属性はlsコマンドの独自拡張オプションの-@
や、属性を処理するxattr
コマンド (-l
で詳細情報も出力) で確認できる。
ls -l@ *.app
drwxr-xr-x@ 6 senooken staff 192 28 Dec 2021 Contents com.apple.quarantine 57
xattr -l *.app
com.apple.quarantine: 0181;62c3ef44;Chrome;B407465B-A8A2-4671-BF16-E8F2B64F98E2
「macOS High Sierra – all documents damaged… – Apple Community」などで報告があるが、どうやらこのcom.apple.quarantine
の属性が何らかの理由で作用していて、警告が出ているようだ。
以下のコマンドでこの属性を削除することで解決するらしい。
xattr -d com.apple.quarantine *.app
-d
オプションで削除対象の属性を指定して削除している。-dオプションの他に、-r
=再帰的に実行、-c=
属性全削除のオプションもよく使われる。ただ、元々は安全のために存在する属性なので、対象を絞った最低限の削除にしたほうがよいだろう。
実際、このコマンドで警告は表示されなくなり、解決した。今後同じ問題に遭遇したら、自信をもってこのコマンドで対応したい。
“macOSの“XXX.app” is damaged and can’t be opened. You should move it to the Trash.への対処” に対して2件のコメントがあります。