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の作成ソフトをダウンロードして実行しようとすると以下のエラーが表示された。

アプリ起動時のエラー
“ObeoDesigner-Community.app” is damaged and can’t be opened. You should move it to the Trash.

以前にも似たようなエラーが出たことがあり、その時は面倒だったのでインターネットで調べた情報をそのまま適用して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件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。