用途:这是一个诊断包(debug bundle),用于为 Apple Notes 自动化集成收集排查证据,帮助定位 AppleScript 和 JXA(JavaScript for Automation)工作流中的权限拒绝、沙盒限制、iCloud 同步失败和脚本桥错误。触发语为“apple notes debug”。
前提条件:macOS 12+ 且已配置 Notes.app;系统自带 osascript 和 tar;需在系统设置的隐私与安全性中为终端授予 Notes.app 的自动化权限。
主要能力:收集 macOS 版本、Notes 是否运行、Shell 信息与时间戳等环境信息;通过只读方式记录自动化授权结果;检查 Shortcuts 中与笔记相关的条目;用 brctl 查看 iCloud 同步状态;读取 Notes 容器目录;以及最近 30 分钟 com.apple.notes 子系统的控制台错误。最后打包为 tar.gz。
使用方式:先取得事件负责人批准并选择私密、受访问控制的目标位置。运行收集脚本后,用以下命令解包查看:tar -xzf debug-apple-notes-*.tar.gz,再查看 environment.txt、tcc-status.txt、accounts.txt、console-errors.txt 等文件。
常见问题参考:-1743 未授权错误对应 tcc-status.txt 无终端条目,需在系统设置 > 隐私 > 自动化中为终端开启 Notes 权限;JXA 返回空数组表示 Notes 需先启动并等待 iCloud 同步;AppleEvent 超时表示 Notes 正在同步;共享账户文件夹查询失败时可显式指定账户,如 app.accounts.byName("iCloud");Shortcuts 集成为空需手动创建 Notes 快捷指令;brctl 报告冲突需打开 Notes 解决重复笔记后强制同步。
限制与注意事项:收集前必须获得事件负责人批准;只收集脱敏的错误分类,仅在诊断必要时才纳入账户或文件夹元数据;排除笔记标题、正文、附件名、TCC 数据库行、钥匙串值和完整主目录列表;传输中加密,仅与事件响应人员共享,并在规定的保留期限删除。若无法完成范围授权检查,应停止收集并仅报告失败检查与时间戳;证实需笔记内容或数据库副本时,必须另行获得事件负责人批准。输出不含 NoteStore 副本、笔记内容、账户与文件夹名称、快捷指令名称或原始 TCC 记录。