-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.sh
More file actions
executable file
·79 lines (67 loc) · 3.33 KB
/
Copy pathbuild.sh
File metadata and controls
executable file
·79 lines (67 loc) · 3.33 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/bash
set -euo pipefail
APP_NAME="CmdTab"
APP_BUNDLE="${APP_NAME}.app"
BUILD_DIR="$(cd "$(dirname "$0")" && pwd)"
BUNDLE_DIR="${BUILD_DIR}/${APP_BUNDLE}"
MACOS_DIR="${BUNDLE_DIR}/Contents/MacOS"
RESOURCES_DIR="${BUNDLE_DIR}/Contents/Resources"
mkdir -p "${MACOS_DIR}"
mkdir -p "${RESOURCES_DIR}"
echo "Compiling ${APP_NAME}..."
swiftc \
-o "${MACOS_DIR}/${APP_NAME}" \
Sources/main.swift \
Sources/AppSettings.swift \
Sources/InstantSpaceSwitcher.swift \
Sources/WorkspaceOverlayController.swift \
Sources/AppBlockView.swift \
Sources/AppDelegate.swift \
Sources/StatusBarController.swift \
Sources/SettingsWindowController.swift \
Sources/OverlayPanelController.swift \
-framework Cocoa \
-framework ApplicationServices \
-framework CoreGraphics \
-framework ServiceManagement \
-O
cp Resources/Info.plist "${BUNDLE_DIR}/Contents/"
if [[ -f "${BUILD_DIR}/Resources/AppIcon.png" ]]; then
cp "${BUILD_DIR}/Resources/AppIcon.png" "${RESOURCES_DIR}/AppIcon.png"
ICONSET_DIR="${BUILD_DIR}/.build/CmdTab.iconset"
rm -rf "${ICONSET_DIR}"
mkdir -p "${ICONSET_DIR}"
sips -z 16 16 "${BUILD_DIR}/Resources/AppIcon.png" --out "${ICONSET_DIR}/icon_16x16.png" >/dev/null
sips -z 32 32 "${BUILD_DIR}/Resources/AppIcon.png" --out "${ICONSET_DIR}/icon_16x16@2x.png" >/dev/null
sips -z 32 32 "${BUILD_DIR}/Resources/AppIcon.png" --out "${ICONSET_DIR}/icon_32x32.png" >/dev/null
sips -z 64 64 "${BUILD_DIR}/Resources/AppIcon.png" --out "${ICONSET_DIR}/icon_32x32@2x.png" >/dev/null
sips -z 128 128 "${BUILD_DIR}/Resources/AppIcon.png" --out "${ICONSET_DIR}/icon_128x128.png" >/dev/null
sips -z 256 256 "${BUILD_DIR}/Resources/AppIcon.png" --out "${ICONSET_DIR}/icon_128x128@2x.png" >/dev/null
sips -z 256 256 "${BUILD_DIR}/Resources/AppIcon.png" --out "${ICONSET_DIR}/icon_256x256.png" >/dev/null
sips -z 512 512 "${BUILD_DIR}/Resources/AppIcon.png" --out "${ICONSET_DIR}/icon_256x256@2x.png" >/dev/null
sips -z 512 512 "${BUILD_DIR}/Resources/AppIcon.png" --out "${ICONSET_DIR}/icon_512x512.png" >/dev/null
sips -z 1024 1024 "${BUILD_DIR}/Resources/AppIcon.png" --out "${ICONSET_DIR}/icon_512x512@2x.png" >/dev/null
iconutil -c icns "${ICONSET_DIR}" -o "${RESOURCES_DIR}/CmdTabIcon.icns"
else
echo "Warning: Resources/AppIcon.png not found; app icon will use the system default."
fi
if [[ -z "${CODESIGN_IDENTITY:-}" ]]; then
CODESIGN_IDENTITY="$(security find-identity -v -p codesigning 2>/dev/null | sed -n 's/.*"\(Apple Development:[^"]*\)".*/\1/p' | head -n 1)"
fi
if [[ -n "${CODESIGN_IDENTITY:-}" ]]; then
echo "Signing with identity: ${CODESIGN_IDENTITY}"
CODESIGN_ARGS=(--force --sign "${CODESIGN_IDENTITY}" --options runtime)
if [[ "${CODESIGN_IDENTITY}" == Developer\ ID\ Application:* ]]; then
CODESIGN_ARGS+=(--timestamp)
fi
codesign "${CODESIGN_ARGS[@]}" "${BUNDLE_DIR}"
else
echo "Signing with ad-hoc signature..."
codesign --force --sign - "${BUNDLE_DIR}"
echo "Warning: ad-hoc signing can cause Accessibility permission resets after rebuilds."
fi
echo "Build complete: ${BUNDLE_DIR}"
echo ""
echo "To run: open ${BUNDLE_DIR}"
echo "On first launch, grant Accessibility permission in System Settings."
echo "Use a stable codesigning identity to preserve Accessibility permission across rebuilds."