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

macOS 12下AppleScript调用Messages发送图片超时失效问题咨询

macOS 12及以上版本iMessage发送附件的可用AppleScript方案

问题原因

macOS 12(Monterey)升级了Messages应用的沙盒权限校验逻辑,旧版本可正常运行的脚本直接传入文本拼接的HFS格式文件路径,无法通过沙盒的文件访问权限校验,就会出现界面显示发送进度条、最终触发超时提示文件无法发送的现象,该问题和iMessage账号状态、网络状态无关。

前置权限配置

注意:以下权限配置必须在首次运行脚本前完成,否则即使脚本逻辑正确也会触发权限类报错

  • 打开「系统设置」→「隐私与安全性」→「完全磁盘访问」,勾选你用来运行脚本的载体应用(常见的有脚本编辑器、自动操作、快捷指令、第三方启动器等)
  • 打开「系统设置」→「隐私与安全性」→「自动化」,找到对应运行脚本的应用,展开权限列表后勾选「Messages」的访问授权

修正后可正常运行的脚本

-- 拼接桌面photo.png的路径,显式转换为系统可识别的别名格式
set filePath to POSIX file ((POSIX path of (path to desktop)) & "photo.png") as alias

tell application "Messages"
    -- 匹配登录的iMessage账号
    set targetService to 1st account whose service type = iMessage
    -- 匹配目标号码的会话参与者,号码需携带国家码前缀
    set targetBuddy to participant "+18005555555" of targetService
    -- 传入转换后的别名对象发送附件
    send filePath to targetBuddy
end tell

补充说明

  • 如果需要发送其他文件,直接修改代码中photo.png为对应文件名即可;如果文件不在桌面,替换为文件的完整POSIX路径即可
  • 如果运行时提示找不到对应参与者,可以先手动给目标号码发一条消息建立会话,再运行脚本即可正常识别
  • 该方案在macOS 12、13、14版本下均测试通过,不会出现卡进度条超时的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:48:31