AppleScript无法直接开启辅助功能权限,但可检测权限状态、弹出提示、跳转系统设置页(如x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility)、查询授权列表,并通过导出为应用程序触发首次运行时的系统授权弹窗。

AppleScript 本身不能直接开启或修改系统“辅助功能”权限设置,因为这是 macOS 的隐私与安全保护机制,必须由用户手动授权。但 AppleScript 可以检测权限状态、引导用户跳转设置页,并配合 Shell 命令完成部分前置检查和提示,形成一套完整的辅助功能配置自动化流程。
检测并提醒缺失的辅助功能权限
脚本可先尝试访问受保护的 API(如 System Events 或 Accessibility API),再捕获权限拒绝错误,从而判断是否已启用。例如:
- 用 tell application "System Events" 执行一个轻量操作(如 get name of every process)
- 若触发 error -10000(Apple event handler failed)或 -25211(access denied),说明辅助功能未授权
- 此时弹出清晰提示:display alert "需开启辅助功能权限" message "请前往「系统设置 > 隐私与安全性 > 辅助功能」,添加「脚本编辑器」和本脚本"
自动打开系统设置辅助功能页
macOS 支持通过 URL scheme 直接跳转到特定设置面板。AppleScript 可调用此功能,减少用户查找路径:
查询 Apple 开发者文档、API 与 2014‑2025 年 WWDC 视频,搜索 SwiftUI、UIKit、Objective‑C、Swift 框架及 watch 会话。
- 执行:open location "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"
- 该命令会自动启动「系统设置」并定位到「隐私与安全性 > 辅助功能」页面
- 适用于 macOS Ventura 及更新版本(Sequoia 兼容);旧系统可用 open location "x-apple.systempreferences:SecurityPrefPane" 后手动切换标签
验证关键应用是否已在辅助功能列表中
虽然无法直接添加,但可通过 Shell 命令读取当前已授权的应用列表,辅助用户确认:
- 使用:do shell script "tccutil reset Accessibility 2>/dev/null; echo '重置完成'"(仅调试用,慎用)
- 更稳妥方式是查询:do shell script "sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db 'SELECT client FROM access WHERE service = "kTCCServiceAccessibility"' 2>/dev/null | grep -i 'scripteditor\|yourapp'"
- 若返回为空,说明目标应用尚未授权,脚本可据此决定是否弹出指引
配合导出应用程序提升首次运行体验
将脚本导出为「应用程序」格式后,首次运行时系统会自动弹出权限请求窗口——这是最可靠的一次性授权触点:
- 在「脚本编辑器」中完成编写 → 「文件 > 导出」→ 格式选「应用程序」
- 勾选「运行前显示此脚本」可保留交互入口(如让用户选择目标应用)
- 双击运行时,系统会主动弹出「[App] 想控制你的电脑」提示,用户点击「好」即完成授权
- 后续运行不再阻断,脚本能立即调用 System Events、UI 元素或日历/提醒事项等需权限的功能

















