用途:将 Apple Notes 自动化以本地 macOS 服务形式部署。Apple Notes 自动化仅能在 macOS 运行,没有云端部署路径,因为 Notes.app 依赖本地 Apple Events 子系统和 TCC 权限。部署即把 JXA/osascript 自动化打包为持久本地服务。
三种部署模型:launchd 代理用于定时或循环任务;Automator 工作流用于用户触发动作;Apple Shortcuts 用于跨应用自动化。三者权限要求和生命周期管理不同。
前置条件:已登录的交互式 macOS 用户会话,获批的 launchd 标签,针对实际客户端路径的明确 TCC 授权。使用不可变的版本化脚本和经过测试的回滚包,不要从可变的主目录通配符部署。准备受限日志目录,以及用于初始冒烟测试的非生产账户或文件夹。
必要用法:将版本化产物安装到用户自有目录并设置严格权限,用 plutil -lint 校验 plist;在 GUI 用户域引导代理,确认标签、可执行路径和环境与评审版本一致;先运行只读作用域冒烟测试,再启用写入计划;回滚时卸载确切标签并恢复此前获批产物,不得同时保留两个计划。
launchd 代理(后台任务推荐)安装命令:cp com.yourorg.notes-automation.plist ~/Library/LaunchAgents/;launchctl load ~/Library/LaunchAgents/com.yourorg.notes-automation.plist;launchctl list | grep notes-automation;日志查看:tail -f /tmp/notes-automation.log;更新前卸载:launchctl unload ~/Library/LaunchAgents/com.yourorg.notes-automation.plist。
Shortcuts 部署(用户触发):在 Shortcuts.app 新建快捷指令并添加“Run Shell Script”动作执行 osascript -l JavaScript /Users/you/scripts/notes-export.js;CLI 触发:shortcuts run "Export Notes to Markdown",shortcuts run "Daily Note Creator" --input-type text --input "$(date +%Y-%m-%d)",列举:shortcuts list | grep -i note。
常见错误与处理:launchd 任务启动但 osascript 失败多为未授予 TCC,需先手动运行触发提示并在系统设置批准;Notes.app 未打开可在脚本中先 open -a Notes;日志出现 connection invalid 可加 LimitLoadToSessionType: Aqua;CLI 找不到快捷指令用 shortcuts list 核对名称;代理运行两次是因同时设置 StartInterval 与 StartCalendarInterval,每个 plist 只用一种调度。
输出:部署回执包含产物版本、plist 标签、macOS 用户域、冒烟测试模式、日志位置和回滚版本;不包含笔记数量、标题、正文、账户名和 TCC 数据库细节。
限制:仅限 macOS 本地;需获批标签与 TCC 授权;部署依赖版本化产物和回滚包。