M1芯片Mac运行AppleScript反复弹出通讯录授权请求如何解决
macOS Monterey M1芯片设备AppleScript反复弹出通讯录授权提示解决方法
该问题为M1(Apple Silicon)架构下TCC权限校验逻辑与Intel设备存在差异、未签名脚本临时标识随机化、权限缓存异常共同导致,按以下步骤操作即可修复:
- 清理已有失效权限条目
打开系统设置的「安全性与隐私-隐私」面板,分别进入「通讯录」「自动化」两个分类,选中所有关联目标脚本、AppleScript.app、脚本编辑器.app的权限条目,点击面板下方的减号按钮全部删除,之后完全退出系统设置。 - 重置权限数据库缓存
打开终端应用,依次执行以下命令清空对应类别的权限缓存:
执行完成后关闭终端。tccutil reset AddressBook tccutil reset AppleEvents - 给目标脚本做本地签名(核心修复步骤)
M1芯片的macOS对未签名的可执行文件会分配临时随机标识,哪怕权限列表已有同名记录,也会被识别为全新应用触发授权,必须将脚本导出为独立应用并签名:- 打开脚本编辑器,载入你写好的调用通讯录的AppleScript代码,选择导出,存储格式选择「应用」,勾选「仅运行」选项后保存到本地。
- 回到终端执行签名命令,将命令中的路径替换为你刚导出的应用的实际存储路径:
codesign --sign - --force --deep /你自己的文件存储路径/你的脚本应用.app
- 完成首次授权
双击运行签好名的脚本应用,首次弹出通讯录访问、自动化权限申请提示时全部选择「允许」,后续运行就不会再重复弹出授权窗口。
避坑提示:不要直接在脚本编辑器中运行未导出为独立应用、未签名的
.scpt脚本,这类临时运行的脚本每次启动都会生成新的临时签名,永远无法正常留存权限配置。
内容的提问来源于stack exchange,提问作者zsmagol
相关产品推荐
相关产品推荐

