#!/usr/bin/env bash # 安装 Mac 常驻「SDK 连接监视器」(无 USB 铁律 · 只盯 NAS/frp/WS) set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SDK_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" PROJ_ROOT="$(cd "${SDK_ROOT}/.." && pwd)" LABEL="com.karuo.workphone.sdk-watcher" PLIST="${HOME}/Library/LaunchAgents/${LABEL}.plist" LOG="${SDK_ROOT}/logs/sdk_connection_watcher.log" mkdir -p "${SDK_ROOT}/logs" "${HOME}/Library/LaunchAgents" cat > "${PLIST}" < Label ${LABEL} ProgramArguments /bin/bash ${SDK_ROOT}/scripts/sdk_connection_watcher.sh WorkingDirectory ${PROJ_ROOT} EnvironmentVariables WORKPHONE_SDK_PORT 8899 DEVICE_ID xgfe65eimrrofyws WATCHER_INTERVAL 20 RunAtLoad KeepAlive StandardOutPath ${LOG} StandardErrorPath ${LOG} EOF launchctl bootout "gui/$(id -u)/${LABEL}" 2>/dev/null || true launchctl bootstrap "gui/$(id -u)" "${PLIST}" launchctl enable "gui/$(id -u)/${LABEL}" launchctl kickstart -k "gui/$(id -u)/${LABEL}" 2>/dev/null || \ bash "${SDK_ROOT}/scripts/sdk_connection_watcher.sh" --bg echo "✅ SDK 监视器 LaunchAgent 已安装: ${LABEL}" echo " 日志: ${LOG}" echo " 当前 SDK: source ${SDK_ROOT}/config/active_sdk.env"