#!/bin/zsh set -euo pipefail ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)" APP_DIR="$ROOT_DIR/dist/boss-agent.app" CONTENTS_DIR="$APP_DIR/Contents" MACOS_DIR="$CONTENTS_DIR/MacOS" RESOURCES_DIR="$CONTENTS_DIR/Resources" SOURCE_FILE="$ROOT_DIR/apps/boss-agent-mac/Sources/BossAgentApp.swift" BINARY_PATH="$MACOS_DIR/boss-agent" if ! command -v swiftc >/dev/null 2>&1; then echo "swiftc not found. Install Xcode Command Line Tools first." >&2 exit 1 fi rm -rf "$APP_DIR" mkdir -p "$MACOS_DIR" "$RESOURCES_DIR" swiftc "$SOURCE_FILE" \ -o "$BINARY_PATH" \ -framework Cocoa \ -framework WebKit \ -framework ApplicationServices \ -framework AVFoundation \ -framework Network \ -framework UserNotifications chmod +x "$BINARY_PATH" cat > "$CONTENTS_DIR/Info.plist" <<'PLIST' CFBundleDevelopmentRegion zh_CN CFBundleExecutable boss-agent CFBundleIdentifier com.hyzq.boss.agent CFBundleInfoDictionaryVersion 6.0 CFBundleName boss-agent CFBundleDisplayName boss-agent CFBundlePackageType APPL CFBundleShortVersionString 0.1.0 CFBundleVersion 1 LSMinimumSystemVersion 13.0 NSHighResolutionCapable NSAppleEventsUsageDescription boss-agent 需要通过自动化控制 Finder、浏览器和授权的企业应用,以完成远程桌面级任务。 NSScreenCaptureUsageDescription boss-agent 需要读取屏幕画面,用于识别桌面状态、系统弹窗和远程控制结果。 NSMicrophoneUsageDescription boss-agent 需要麦克风权限,用于语音协作和远程指令输入。 NSCameraUsageDescription boss-agent 需要摄像头权限,用于视觉协作和现场画面确认。 NSLocalNetworkUsageDescription boss-agent 需要访问本地网络,用于发现和连接局域网设备、开发板和企业内网服务。 NSBonjourServices _http._tcp _boss-agent._tcp PLIST plutil -lint "$CONTENTS_DIR/Info.plist" >/dev/null echo "$APP_DIR"