技能 编程开发 苹果笔记自动化部署

苹果笔记自动化部署

v20260423
apple-notes-deploy-integration
本技能提供了一套全面的框架,用于在macOS上部署苹果笔记的自动化功能,使其成为本地持久化的服务。它支持三种部署模型:使用`launchd`代理进行定时后台任务,创建快捷指令(Shortcuts)处理用户触发的动作,并包含安装脚本。这对于构建苹果生态系统内的跨应用、系统级自动化流程至关重要。
获取技能
198 次下载
概览

Apple Notes Deploy Integration

Overview

Apple Notes automation runs exclusively on macOS — there is no cloud deployment path because Notes.app depends on the local Apple Events subsystem and TCC permissions. Deployment means packaging your JXA/osascript automation as a persistent local service. The three deployment models are: launchd agents for scheduled/recurring tasks, Automator workflows for user-triggered actions, and Apple Shortcuts for cross-app automation. Each has different permission requirements and lifecycle management.

launchd Agent (Recommended for Background Tasks)

<!-- ~/Library/LaunchAgents/com.yourorg.notes-automation.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.yourorg.notes-automation</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/node</string>
        <string>/Users/you/scripts/notes-sync.js</string>
    </array>
    <key>StartInterval</key>
    <integer>3600</integer>
    <key>StandardOutPath</key>
    <string>/tmp/notes-automation.log</string>
    <key>StandardErrorPath</key>
    <string>/tmp/notes-automation-error.log</string>
    <key>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        <string>/usr/local/bin:/usr/bin:/bin</string>
    </dict>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
# Deploy and manage the launchd agent
cp com.yourorg.notes-automation.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.yourorg.notes-automation.plist
launchctl list | grep notes-automation
# View logs
tail -f /tmp/notes-automation.log

# Unload for updates
launchctl unload ~/Library/LaunchAgents/com.yourorg.notes-automation.plist

Shortcuts Deployment (User-Triggered)

# Create a Shortcut that runs your JXA script
# 1. Open Shortcuts.app > New Shortcut
# 2. Add "Run Shell Script" action with:
osascript -l JavaScript /Users/you/scripts/notes-export.js

# Trigger shortcuts from CLI or other automations:
shortcuts run "Export Notes to Markdown"
shortcuts run "Daily Note Creator" --input-type text --input "$(date +%Y-%m-%d)"

# List available shortcuts
shortcuts list | grep -i note

Installer Script

#!/bin/bash
# scripts/install.sh — Deploy Notes automation to a macOS machine
set -euo pipefail

INSTALL_DIR="$HOME/.notes-automation"
PLIST_DIR="$HOME/Library/LaunchAgents"
LABEL="com.yourorg.notes-automation"

echo "Installing Apple Notes automation..."
mkdir -p "$INSTALL_DIR"
cp scripts/*.js "$INSTALL_DIR/"
cp config/*.json "$INSTALL_DIR/"

# Install launchd plist
envsubst < templates/launchd.plist.template > "$PLIST_DIR/$LABEL.plist"
launchctl load "$PLIST_DIR/$LABEL.plist"

# Verify
echo -n "Service status: "
launchctl list "$LABEL" 2>/dev/null && echo "Running" || echo "Failed to start"

# Test Notes access (will trigger TCC prompt on first run)
echo -n "Notes access: "
osascript -l JavaScript -e 'Application("Notes").defaultAccount.notes.length' && echo "OK" || echo "DENIED — approve in System Settings"

Error Handling

Issue Cause Solution
launchd job starts but osascript fails TCC not granted for launchd context Run script manually first to trigger TCC prompt; approve in System Settings
Job runs but Notes.app not open RunAtLoad fires before login complete Add open -a Notes before osascript calls in your script
Logs show "connection invalid" Screen locked or user switched Add LimitLoadToSessionType: Aqua to plist for GUI session only
Shortcut not found from CLI Shortcut name mismatch or not saved shortcuts list to verify exact name
Agent runs twice Both StartInterval and StartCalendarInterval set Use only one scheduling mechanism per plist

Resources

Next Steps

For production readiness validation, see apple-notes-prod-checklist. For monitoring deployed services, see apple-notes-observability.

信息
Category 编程开发
Name apple-notes-deploy-integration
版本 v20260423
大小 4.78KB
更新时间 2026-04-28
语言