From 4445b715434d503cedd62b7ebd2c01fe6c700e0c Mon Sep 17 00:00:00 2001
From: Ariver <ar@MacBook-Air.local>
Date: Mon, 11 May 2026 00:31:04 +0800
Subject: [PATCH] Archive TagLauncher 4.0.7

---
 build.sh |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 53 insertions(+), 1 deletions(-)

diff --git a/build.sh b/build.sh
index 970a371..6f525da 100644
--- a/build.sh
+++ b/build.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 set -euo pipefail
 
-APP_NAME="Apptag"
+APP_NAME="TagLauncher"
 PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
 BUILD_DIR="$PROJECT_DIR/build"
 APP_BUNDLE="$BUILD_DIR/$APP_NAME.app"
@@ -11,6 +11,20 @@
 
 SDK_PATH=$(xcrun --sdk macosx --show-sdk-path)
 TARGET="arm64-apple-macosx26.0"
+
+# --- Optional: App Store / Sandbox signing ---
+# Set CODESIGN_IDENTITY to your "Apple Distribution" or "Mac Developer" cert name.
+# Example: CODESIGN_IDENTITY="Apple Distribution: Your Name (TEAMID)"
+CODESIGN_IDENTITY="${CODESIGN_IDENTITY:-}"
+ENTITLEMENTS="$SWIFT_DIR/TagLauncher.entitlements"
+APP_STORE_MODE=false
+
+if [ -n "${APP_STORE:-}" ] && [ "$APP_STORE" = "1" ]; then
+    APP_STORE_MODE=true
+    if [ -z "$CODESIGN_IDENTITY" ]; then
+        echo "⚠️  APP_STORE=1 but CODESIGN_IDENTITY not set. Will ad-hoc sign with entitlements."
+    fi
+fi
 
 echo "==> Cleaning..."
 rm -rf "$BUILD_DIR"
@@ -27,6 +41,7 @@
     -framework Carbon \
     -sdk "$SDK_PATH" \
     -target "$TARGET" \
+    -Osize \
     "$SWIFT_DIR"/*.swift
 
 echo "==> Copying Info.plist..."
@@ -42,9 +57,46 @@
 echo "==> Copying Localization files..."
 cp -r "$SWIFT_DIR/Localization" "$RESOURCES_DIR/Localization"
 
+echo "==> Embedding PkgInfo..."
+echo -n "APPL????" > "$APP_BUNDLE/Contents/PkgInfo"
+
 echo "==> Setting permissions..."
 chmod +x "$MACOS_DIR/$APP_NAME"
+
+echo "==> Stripping debug symbols..."
+strip -x "$MACOS_DIR/$APP_NAME"
+
+# --- Signing ---
+if [ "$APP_STORE_MODE" = true ] || [ -n "$CODESIGN_IDENTITY" ]; then
+    echo "==> Signing with entitlements..."
+    if [ -n "$CODESIGN_IDENTITY" ]; then
+        CODESIGN_ARGS="--sign \"$CODESIGN_IDENTITY\""
+    else
+        CODESIGN_ARGS="--sign -"
+    fi
+
+    if [ -f "$ENTITLEMENTS" ]; then
+        eval codesign --force --deep $CODESIGN_ARGS --entitlements "$ENTITLEMENTS" "$APP_BUNDLE"
+        echo "   Signed with entitlements: $ENTITLEMENTS"
+    else
+        eval codesign --force --deep $CODESIGN_ARGS "$APP_BUNDLE"
+        echo "   Signed (no entitlements file found)"
+    fi
+else
+    # Default: ad-hoc sign without entitlements (local dev)
+    echo "==> Ad-hoc signing..."
+    codesign --force --deep --sign - "$APP_BUNDLE"
+fi
 
 echo ""
 echo "✅ App built at: $APP_BUNDLE"
 echo "   Run: open $APP_BUNDLE"
+
+# --- App Store mode: remind about next steps ---
+if [ "$APP_STORE_MODE" = true ]; then
+    echo ""
+    echo "📦 App Store build ready. Next steps:"
+    echo "   1. Verify sandbox: spctl -a -v \"$APP_BUNDLE\""
+    echo "   2. Test in sandbox: sandbox-exec -f <(echo '(version 1)(allow default)') open \"$APP_BUNDLE\""
+    echo "   3. Upload via Transporter or 'xcrun altool --upload-app'"
+fi

--
Gitblit v1.9.3