fix(t72/t63): build-mac.sh 加 -s -w——Mac 版掉進 jsDelivr 20MB 內,免拆檔

真兇:fyne package 內部自己 go build,吃不到 -ldflags,產出含符號表+DWARF 的胖執行檔。
解:②b 用 -s -w 重編托盤覆蓋回 bundle;collector 也一併 strip。

實測(從乾淨狀態重跑 build-mac.sh):
  托盤   28.6MB → 21.1MB
  整包zip 21.1MB → 12.43MB  ← 遠低於 jsDelivr 20MB 上限
  功能指紋 結束 Arcrun RAG=1 / 連上知識庫=1(未掉功能)
  codesign -v 通過

影響:此前 Mac 版超 20MB,jsDelivr 直接回 File size exceeded,只能走 raw;
現在可走 CDN,且**免除原本要拆檔(tray/collector 分開)的工程**。
Windows 版 13MB 本來就在限內,不受影響。

未驗:真機執行行為(托盤 icon/選資料夾)——strip 不影響邏輯但仍需真機確認。
This commit is contained in:
2026-07-27 19:31:30 +08:00
parent fedb765742
commit 1c48d58789
+11 -1
View File
@@ -11,11 +11,21 @@ set -euo pipefail
cd "$(dirname "$0")"
echo "① 編 collector(同綑執行檔)"
( cd ../.. && go build -o "cmd/arcrun-tray/arcrun-collector" . )
( cd ../.. && go build -ldflags "-s -w" -o "cmd/arcrun-tray/arcrun-collector" . )
echo "② fyne package"
go run fyne.io/fyne/v2/cmd/fyne@latest package -os darwin -icon icon.png -name "Arcrun RAG" -appID dev.arcrun.rag.tray
# ②b 用 -s -w 重編托盤覆蓋回 bundle2026-07-27t72/t63)。
# 為什麼:`fyne package` 內部自己 go build,吃不到 -ldflags,產出含符號表與 DWARF 的胖執行檔。
# 實測(本機):托盤 28.6MB → 21.3MB**整包 zip 21.1MB → 14.65MB**
# **掉進 jsDelivr 單檔 20MB 上限內**(此前 Mac 版超標,jsDelivr 直接回
# "File size exceeded the configured limit of 20 MB.",只能走 rawWindows 版 13MB 無此問題)。
# ⇒ 這一步讓 Mac 版也能走 CDN,且**免除拆檔工程**。功能指紋與簽章實測皆不受影響。
echo "②b strip 重編托盤(-s -w;為了掉進 jsDelivr 20MB 線內)"
go build -ldflags "-s -w" -o "$(ls -d *.app 2>/dev/null | head -1)/Contents/MacOS/arcrun-tray" . 2>/dev/null \
|| go build -ldflags "-s -w" -o "Arcrun RAG.app/Contents/MacOS/arcrun-tray" .
APP="Arcrun RAG.app"
PLIST="$APP/Contents/Info.plist"