From 46a600c01b067a42fb5681653e2cdee303337466 Mon Sep 17 00:00:00 2001 From: JianFeeeee <109188060+JianFeeeee@users.noreply.github.com> Date: Fri, 2 Oct 2026 10:19:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(gui):=20=E6=89=93=E5=8C=85=E6=9C=AA?= =?UTF-8?q?=E4=BC=A0=20--icon=EF=BC=8Cexe=20=E5=86=85=E5=B5=8C=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E4=B8=80=E7=9B=B4=E6=98=AF=20Electron=20=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 现象 GUI 的 exe 图标不正确(显示为 Electron 默认图标)。 ## 根因 Makefile 的 build-gui 调electron-packager 时**没有 --icon 参数**: npx electron-packager . homeagent-gui --out=... --no-sandbox electron-packager 默认不写 exe 资源图标,于是 exe 保持 Electron 自带图标。 仓库里 cmd/gui/icon.ico 一直存在且完全合法(file 识别为 "MS Windows icon resource - 7 icons, 16x16, 24x24"),只是从未被打包进去。 注意这是**两条独立的打包路径**: · electron-packager(make build-gui,本机/开发用)→ 靠 --icon 参数 · electron-builder(package.json 的 build 段,发行用)→ 靠 build.linux.icon,且 files 数组里也没列 icon.ico 本次只修前者(本地安装与实测走这条)。 ## 证据 重新打包前后 exe 大小: 188784128 → 188834816 (+50688 = 7 个尺寸的图标资源) 此前多次打包产物大小完全一致,可反证图标从未被写入。 ## 改动 build-gui 补 --icon=icon.ico。托盘图标无需改动:它走 Tray/nativeImage,按 icon-tray@2x.png → icon-tray.png → icon.ico 三级候选回退,文件都在且逻辑健壮。 ## 实测 重新打包并安装:184 文件 0 处不匹配,exe = 188834816 字节 启动正常:prefs.silentStart=true → 4 进程 0 可见窗口、 login 200、0 个 401 / JS 错误。 --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d5996735..c6c4fd9d 100644 --- a/Makefile +++ b/Makefile @@ -294,7 +294,7 @@ build-cli: @echo "Built: $(BUILD_DIR)/$(CLI_BINARY) ($(VERSION))" build-gui: - @cd cmd/gui && npm install --production && npx electron-packager . $(GUI_BINARY) --out=../../$(BUILD_DIR) --overwrite --no-sandbox + @cd cmd/gui && npm install --production && npx electron-packager . $(GUI_BINARY) --out=../../$(BUILD_DIR) --overwrite --no-sandbox --icon=icon.ico @echo "Built: $(BUILD_DIR)/$(GUI_BINARY)" build-static: