Files
simpletopbar/build-app.sh
T
TZGyn 6f55861be7 Keep the keyboard input-source icon visible
The hiding boundary sat right of the input-source indicator, so the
hamburger took the slot where the language icon had been. Move the
boundary left of it so the language icon stays, with the hamburger still
at the left edge.

💘 Generated with Crush

Assisted-by: Crush:deepseek-v4.1-flash
2026-09-27 10:44:39 +08:00

67 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
cd "$(dirname "$0")"
VERSION="${1:-0.4.7}"
swift build -c release
BIN=".build/release/SimpleTopBar"
APP="SimpleTopBar.app"
IDENT=""
# Prefer a Developer ID Application identity so the app gets clean Gatekeeper
# behavior; fall back to ad-hoc signing (no TCC-stable identity) otherwise.
if command -v security >/dev/null 2>&1; then
IDENT=$(security find-identity -v -p codesigning 2>/dev/null | awk '/Developer ID Application:/ { print $2; exit }')
fi
rm -rf "$APP"
mkdir -p "$APP/Contents/MacOS"
cp "$BIN" "$APP/Contents/MacOS/SimpleTopBar"
cat > "$APP/Contents/Info.plist" <<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>CFBundleExecutable</key>
<string>SimpleTopBar</string>
<key>CFBundleIdentifier</key>
<string>dev.tzgyn.simpletopbar</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>SimpleTopBar</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleIconFile</key>
<string>Icon</string>
<key>CFBundleShortVersionString</key>
<string>${VERSION}</string>
<key>CFBundleVersion</key>
<string>${VERSION}</string>
<key>LSMinimumSystemVersion</key>
<string>13.0</string>
<key>LSUIElement</key>
<true/>
<key>NSHighResolutionCapable</key>
<true/>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>
PLIST
chmod +x scripts/make-icon.sh
./scripts/make-icon.sh
if [ -n "$IDENT" ]; then
security unlock-keychain "$HOME/Library/Keychains/login.keychain-db" 2>/dev/null || true
codesign --force --options runtime --sign "$IDENT" "$APP"
echo "Built $APP ${VERSION} (signed with Developer ID '$IDENT') — open $APP"
else
codesign --force --sign - "$APP"
echo "Built $APP ${VERSION} (ad-hoc signed) — open $APP"
fi