Automator 无原生工程目录结构,但可按用途分层构建本地方案:workflows/存工作流,scripts/放AppleScript,config/管配置,env/适配多系统版本,shared/存通用脚本,并通过README.md等文档化,支持快捷键、右键服务及开机自启部署。

Automator 本身不提供“工程目录结构”概念,它面向的是单个工作流(.workflow 文件)或应用程序(.app),没有传统开发项目的 src/main/java 这类层级。但如果你希望以可维护、可复用、可协作的方式组织 Automator 自动化资产,可以借鉴软件工程思路,构建一套适合 macOS 自动化任务的本地目录结构方案。
核心原则:按用途分层,文件即模块
Automator 的最小可执行单元是工作流文件(.workflow)或打包后的应用(.app)。因此,“工程结构”的本质是把不同功能、不同生命周期的自动化资产分类存放,并辅以必要元数据和说明。
-
所有工作流统一存放在
workflows/目录下,按功能命名,如compress_large_files.workflow、rename_photos_by_date.workflow -
AppleScript 脚本独立存放于
scripts/,便于复用和调试。例如force_quit_all_safari_tabs.scpt可被多个工作流调用 -
配置与变量提取到
config/,用纯文本(如 .plist 或 .json)保存路径、阈值、格式模板等,避免硬编码在工作流中 -
添加
README.md和CHANGELOG.md,记录每个工作流的用途、触发方式、依赖项(如是否需开启辅助功能权限)、已知限制
支持多环境与版本管理的建议结构
若团队协作或需适配不同 Mac 系统版本(如 Ventura vs Sequoia),可在根目录下增加环境标识:
-
env/ventura/:存放仅在 macOS 13 下稳定运行的工作流(例如调用新版 Shortcuts API 的操作) -
env/sequoia/:存放适配 macOS 15 新特性(如 Focus Filter 条件)的变体 -
shared/:跨版本通用的基础脚本与工具,如通用日志写入函数、时间戳生成器
与系统服务集成时的注意事项
Automator 工作流若需作为快捷键、Finder 右键菜单或登录时启动,其部署位置有约定俗成路径:
-
全局快捷键:保存为应用程序(.app),放入
/Applications/,再在“系统设置 > 键盘 > 快捷键 > 应用程序快捷键”中绑定 -
Finder 右键服务:必须保存为“快速操作”(Quick Action),存至
~/Library/Services/,且工作流开头需启用“接收当前 Finder 项目” - 开机自启:使用“登录项”,指向 .app 或封装好的 shell 脚本,避免直接放 .workflow(系统不识别)
进阶:用 Shell + Automator 实现动态加载
当工作流逻辑复杂、参数频繁变化时,可让 Automator 只做“调度器”,实际逻辑交给外部脚本:
- 在
bin/目录下存放可执行 shell 脚本(如backup_to_external.sh),赋予x权限 - Automator 工作流中使用“运行 Shell 脚本”操作,调用
./bin/backup_to_external.sh "$1",其中$1是传入的 Finder 选中路径 - 这样更新逻辑只需改脚本,无需反复导出、重签名工作流

















