重置 macOS 的自动化 Automation 设置以解决奇怪故障

本文分享如何重置自动化(Automation 和 Apple Event)的相关设置,以解决 macOS 与 App 之间的奇怪故障。

有时 macOS 系统(特别是升级到 Catalina 后)会遇到奇怪的问题,比如通过自动化(Automation 和 Apple Event)控制其他 App 的 App,会遇到卡住的问题。表现为,比如这个 App 是在 Menubar 上的,你点了 Menubar 后就会转彩虹球:卡住了。

我开发的 Juice 就是这样一款这样的 App,它通过 Apple Event 去控制 Spotify 或 Apple Music,可以让用户方便的直接在菜单栏操作播放歌曲。

Juice for macOS.png

后来,我接到过一些用户的反馈,说刚开始用着好好的,后来点菜单栏图标就没有响应了,其中有用户比较肯定地说「Must be a Catalina thing」。这类问题通常是最头疼的,毕竟我无法重现它——而且通常也是操作系统引起的。终于,随着使用 macOS Catalina,我也遇到了这个问题!

Juice for macOS User Review.png

于是我兴奋地开始 Debug Juice,发现它 Hang 在了 AEDeterminePermissionToAutomateTarget 这个 API 上:通过 Activity Monitor 的 Spindump 中可以看到。

直觉告诉我,重置系统 Automation 的相关设置后可以解决这个问题,于是找到了这个指令去重置它:

tccutil reset AppleEvents

或者直接用 Bundle ID 只重置该 App 的设置:

tccutil reset AppleEvents me.imtx.Juice

重置以后,会在系统偏好设置「安全性与隐私」的自动化里面,看到相关内容已经没有了,最后重启系统即可。

reset macOS Automation and AppleEvent.png

macOS Catalina 真是让人不省心的操作系统啊…

参考资料

欢迎使用图拉鼎和他的团队开发的作品

One Switch - 多功能开关工具

常驻 macOS 菜单栏的开关工具,可以快速开关 AirPods、睡眠模式、切换黑暗模式等。

No Comment

Leave a Comment