You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Monterey系统下如何让AppleScript无需权限弹窗运行或自动授权?

在macOS Monterey中规避AppleScript权限请求的方法

一、修改TCC数据库直接授予权限(适配Monterey的正确命令)

你之前使用的SQLite命令仅适配旧版系统,Monterey的TCC数据库结构已更新,需调整命令格式。操作前必须关闭System Integrity Protection (SIP),因为TCC数据库受SIP保护,未关闭时无法修改。

步骤:

  1. 重启Mac进入恢复模式,打开终端执行csrutil disable,完成后重启系统。
  2. 执行以下命令(以Terminal为例,若为其他应用,替换com.apple.Terminal为对应应用的Bundle ID):
sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "REPLACE INTO access VALUES('kTCCServiceAccessibility', 'com.apple.Terminal', 0, 1, 1, NULL, NULL, NULL, 'UNUSED', NULL, NULL, 0);"
  1. 执行sudo killall tccd重启TCC服务,或直接重启Mac,权限将自动生效,不会再弹出请求窗口。

二、模拟点击自动接受权限弹窗

若不想关闭SIP,可通过AppleScript模拟点击弹窗的「允许」按钮,但前提是运行该脚本的应用已获得辅助功能权限(比如Script Editor或Terminal)。

示例脚本:

-- 运行目标AppleScript
do shell script "osascript /path/to/your/target-script.scpt"

-- 等待权限弹窗并模拟点击
tell application "System Events"
    repeat until exists window "System Preferences"
        delay 0.5
    end repeat
    click button "允许" of window "System Preferences" of application process "System Preferences"
end tell

三、注意事项

  • 修改TCC数据库存在风险,操作前建议备份:sudo cp /Library/Application\ Support/com.apple.TCC/TCC.db ~/Desktop/TCC_backup.db
  • 若使用打包后的AppleScript应用,需替换命令中的Bundle ID,可通过osascript -e 'id of app "YourAppName"'获取对应ID
  • Monterey及后续系统的隐私管控持续加强,修改TCC的方式可能随系统更新失效,优先建议通过官方流程申请权限,仅在测试或特定场景使用上述方法

内容的提问来源于stack exchange,提问作者user43535

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:10:26