経緯
- 2025/3/11 エラーを再現できたので、エラーメッセージの記述を更新しました。
- 2025/3/15 IntelじゃなくてもApple M1のMac Miniでも同じ問題おきますね。
4年もののMacBook Pro(2019, Intel)のOSをバージョンアップしたあと、macports
でインストールしてあったemacs-app
をDockやFinderのアイコンから起動しようとしたら、
「アプリケーション"Finder"には、(null)を開くアクセス権がありません。」
みたいなメッセージが出ました。
諦めてMacPorts
を1から別の場所にソースからインストールしてport install emacs-app ......
して作り直しましたが、同じ症状でした。
コマンドラインから起動してみると、
open
コマンドで起動しようとすると、
% open $macports_root/Applications/Emacs.app
_LSOpenURLsWithCompletionHandler() failed with error -54
というエラーメッセージが出ました。このエラーメッセージでWeb検索すると、他のアプリケーションでの似たような例がヒットしましたが、「最新版をダウンロードして再インストールしたら治った」という例が多かった。
open
コマンドでなく、直接実行形式ファイルを叩くと立ち上がるので、実行ファイルそのものに問題は無さそう。
% $macports_root/Applications/Emacs.app/Contents/MacOS/Emacs
# 正常に起動する
さらにWebを検索していたら、「spctl --add (アプリケーションフォルダ)
で解決するかも」というページがみつかった。 が、この手はmacOS Sequoia (15)
ではダメな手でした。ただ、spctl
のマニュアルを読んで、もう少し詳しい情報がわかりました。
% spctl --add $macports_root/Applications/Emacs.app
This operation is no longer supported. Please see the man page for more information.
% spctl --assess -v $macports_root/Applications/Emacs.app
$macports_root/Applications/Emacs.app: rejected
source=no usable signature
なんか署名がされてない、というのでrejectされているようです。
解決策
もうすこし真面目にmacports
のTracを調べたらドンピシャのものがありました。もともとhomebrew
のバグレポートにあった回避策みたいです。ちなみに、Intel Mac
だと起きる問題で、AppleSilicon Mac
では起きてないようなことが書かれていました。が、M1のMac Miniでも同じ問題おきました。(2025/3/15追記)
% sudo codesign --force --deep --sign - -v --strip-disallowed-xattrs $macports_root/Applications/Emacs.app
$macports_root/Applications/Emacs.app: signed app bundle with Mach-O thin (x86_64) [org.gnu.Emacs]
% open $macports_root/Applications/Emacs.app
# 正常に起動
めでたしめでたし。(--sign
のあとの-
を忘れがち。)
Emacs以外の他のアプリでも同じような問題が起きそうなので、メモとして残しておく感じです。