macOS 10.15 下 Emacs 用不了 AppleScript 了吗?

前两个天升级了 macOS Catalina (Version 10.15.4),刚刚遇到一个问题,AppleScript 用不了,比如用 Finder 会报错提示没有授权:

(do-applescript "tell application \"Finder\" to get selection")
;; error→ Not authorized to send Apple events to Finder.

其它的应用(如 Chrome)也报同样错误。与此同时,在 iTerm 中是没有问题的,会自动弹出一个授权窗口,点 OK 之后就行了:

$ osascript -e "tell application \"Finder\" to get selection"

Screen Shot 2020-04-08 at 19.32.21

我用的是 Emacs Mac Port,自己编译的:

(emacs-version)
"GNU Emacs 26.3 (build 1, x86_64-apple-darwin19.4.0, Carbon Version 162 AppKit 1894.4)
 of 2020-04-07"

不考虑跑在终端里的 Emacs。你们的 Emacs 有这个问题吗?官方 Cocoa Emacs?homebrea?homebrew cask?emacs-plus?emacs-mac-port? https://emacsformacosx.com/ 提到「code signed」这个没问题?

我这在 GUI 下没有问题 emacs-mac homebrew 编译安装 GNU Emacs 26.3 (build 1, x86_64-apple-darwin19.4.0, Carbon Version 162 AppKit 1894.4) of 2020-03-27

我的没问题,用的emacs-plus.

Releases · railwaycat/homebrew-emacsmacport · GitHub 上说二进制的包有签名:

Bundles signed by “Developer ID Application: Xin Xu (3L5CAL23RF)”, to verify, use codesign -dvv Emacs.app and spctl --assess --verbose commands.

也就是自己电脑上编译的?相较于二进制安装,编译安装耗时很长。可能 homebrew 非官方的包根本就不支持二进制安装。

你的系统是最新的吧?10.15。我看了下 homebrew-emacs-plus 它也没做什么可能有关的操作。


莫非是只要我自己这儿有问题,印象中以前 macOS 10.14 上 Emacs 是能弹出授权确认窗口的。

对呀,我理解下面应该就是自己电脑上编译安装,是比较久,但是频率不高也还行?也可能是 macOS 自己本身问题不弹了

brew tap railwaycat/emacsmacport
brew install emacs-mac --with-natural-title-bar --with-modules --with-imagemagick

现在 OK 了,不过没搞清楚什么原因导致原来的问题,以及怎么修复的。

我先卸载了 Emacs,然后用 homebrew 从 railwaycat/emacsmacport 安装了 emacs-mac,发现这个居然没问题,可是它根本也做什么特别的事情,随后我自己手动从 git 源代码安装了 emacs-mac,发现这个也没问题。最后我又把从 railwaycat/emacsmacport 安装的 Emacs 卸载了,自己安装的 Emacs 还是可以没问题。

需要设置这里面有 Emacs。一个简单的手段是在 eshell 里用 osascript 运行一次,会和 iTerm 一样出弹窗。

这个问题之前还问过一次