-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.sh
More file actions
executable file
·64 lines (54 loc) · 2.02 KB
/
Copy pathbuild.sh
File metadata and controls
executable file
·64 lines (54 loc) · 2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash
# 构建 KeepAgentAwake(SwiftUI 窗口 + 菜单栏 + App 图标)
set -e
echo "🔨 开始构建 KeepAgentAwake…"
APP_NAME="KeepAgentAwake"
BUILD_DIR="build"
APP_DIR="$BUILD_DIR/$APP_NAME.app"
CONTENTS_DIR="$APP_DIR/Contents"
MACOS_DIR="$CONTENTS_DIR/MacOS"
RESOURCES_DIR="$CONTENTS_DIR/Resources"
ICON_SRC="$BUILD_DIR/AppIcon_1024.png"
ICONSET="$BUILD_DIR/AppIcon.iconset"
rm -rf "$BUILD_DIR"
mkdir -p "$MACOS_DIR"
mkdir -p "$RESOURCES_DIR"
echo "🎨 生成应用图标…"
swift tools/RenderAppIcon.swift "$ICON_SRC"
mkdir -p "$ICONSET"
sips -z 16 16 "$ICON_SRC" --out "$ICONSET/icon_16x16.png" >/dev/null
sips -z 32 32 "$ICON_SRC" --out "$ICONSET/icon_16x16@2x.png" >/dev/null
sips -z 32 32 "$ICON_SRC" --out "$ICONSET/icon_32x32.png" >/dev/null
sips -z 64 64 "$ICON_SRC" --out "$ICONSET/icon_32x32@2x.png" >/dev/null
sips -z 128 128 "$ICON_SRC" --out "$ICONSET/icon_128x128.png" >/dev/null
sips -z 256 256 "$ICON_SRC" --out "$ICONSET/icon_128x128@2x.png" >/dev/null
sips -z 256 256 "$ICON_SRC" --out "$ICONSET/icon_256x256.png" >/dev/null
sips -z 512 512 "$ICON_SRC" --out "$ICONSET/icon_256x256@2x.png" >/dev/null
sips -z 512 512 "$ICON_SRC" --out "$ICONSET/icon_512x512.png" >/dev/null
sips -z 1024 1024 "$ICON_SRC" --out "$ICONSET/icon_512x512@2x.png" >/dev/null
iconutil -c icns "$ICONSET" -o "$RESOURCES_DIR/AppIcon.icns"
echo "📦 编译 Swift…"
swiftc -O -o "$MACOS_DIR/$APP_NAME" \
-framework Cocoa \
-framework SwiftUI \
-framework Combine \
-framework UserNotifications \
-framework IOKit \
-parse-as-library \
KeepAgentAwakeMain.swift \
KeepAgentAwakeViews.swift \
KeepAgentAwakeDelegate.swift
cp Info.plist "$CONTENTS_DIR/"
echo "APPL????" > "$CONTENTS_DIR/PkgInfo"
if [ -f "$MACOS_DIR/$APP_NAME" ]; then
SIZE=$(du -h "$MACOS_DIR/$APP_NAME" | awk '{print $1}')
echo ""
echo "✅ 构建完成!"
echo "📍 应用位置: $APP_DIR"
echo "📦 二进制大小: $SIZE"
echo ""
echo "🚀 运行: open \"$APP_DIR\""
else
echo "❌ 构建失败!"
exit 1
fi