#!/usr/bin/env bash # build-mac.sh — 打包 Arcrun.app(Wails 版,t194) # # 與 fyne 版最重要的差別:**要把 collector 同綑進 .app**。 # daemon 的本體是 `collector direct`(監看/萃卡/上傳),App 只是它的門面; # 沒同綑 ⇒ 裝了也不會同步。 set -euo pipefail cd "$(dirname "$0")" VERSION="${VERSION:-$(git describe --tags --always --dirty 2>/dev/null || echo dev)}" export PATH="$PATH:$(go env GOPATH)/bin" echo "🏷 版本:${VERSION}" echo "① 編 collector(同綑執行檔,純 stdlib、CGO_ENABLED=0)" ( cd ../.. && CGO_ENABLED=0 go build -ldflags "-s -w" -o "cmd/arcrun-app/arcrun-collector" . ) echo "② wails build" wails build -clean -ldflags "-X main.version=${VERSION}" APP="build/bin/Arcrun.app" [ -d "build/bin/arcrun-app.app" ] && { rm -rf "$APP"; mv "build/bin/arcrun-app.app" "$APP"; } echo "③ 同綑 collector 進 .app(App 用 os.Executable() 找同層)" cp arcrun-collector "$APP/Contents/MacOS/arcrun-collector" echo "④ ad-hoc 重簽(改過 bundle 內容必重簽,否則 launchd 拒開)" codesign --force --deep --sign - "$APP" 2>/dev/null || true rm -f arcrun-collector echo "✅ 完成:$APP" echo " 驗法:open '$APP' → 選單列出現 icon、Dock **不出現** icon" echo " 點 icon → 立刻展開視窗;右鍵 → 只有「結束 Arcrun」"