From 402f664db73afe6c31a347cd464709e3986cb1a2 Mon Sep 17 00:00:00 2001 From: Macbook Date: Sun, 14 Jun 2026 11:48:38 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20Windows=20desktop=20updater=20=E2=80=94?= =?UTF-8?q?=20setup.exe=20in=20latest.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tauri v2 signs *-setup.exe for NSIS updates, not only nsis.zip. Include windows-x86_64 in latest.json and improve platform error messages. Co-authored-by: Cursor --- desktop/src/bridge/updater.ts | 5 ++++- frontend/src/components/DesktopUpdateModal.tsx | 3 ++- scripts/build-desktop.sh | 4 +++- scripts/generate-desktop-latest-json.mjs | 2 ++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/desktop/src/bridge/updater.ts b/desktop/src/bridge/updater.ts index 4cc48d4..ab2dab2 100644 --- a/desktop/src/bridge/updater.ts +++ b/desktop/src/bridge/updater.ts @@ -49,8 +49,11 @@ function formatUpdateError(e: unknown): string { if (/network|fetch|connect|timeout|dns|offline|failed to send/.test(lower)) { return `네트워크 오류로 업데이트를 확인하지 못했습니다. (${msg})`; } + if (/fallback platforms|platforms object|windows-x86_64/.test(lower)) { + return 'Windows용 업데이트 패키지가 서버에 없습니다. 웹 PC 프로그램 탭에서 exe 설치 파일을 받아 다시 설치해 주세요.'; + } if (/platform|darwin|arch|target/.test(lower)) { - return `이 PC용 업데이트 패키지가 없습니다. (${msg})`; + return `이 PC용 업데이트 패키지가 없습니다. 웹 PC 프로그램 탭에서 설치 파일을 다시 받아 주세요.`; } return msg; } diff --git a/frontend/src/components/DesktopUpdateModal.tsx b/frontend/src/components/DesktopUpdateModal.tsx index 28265a0..05e91f1 100644 --- a/frontend/src/components/DesktopUpdateModal.tsx +++ b/frontend/src/components/DesktopUpdateModal.tsx @@ -161,7 +161,8 @@ const DesktopUpdateModal: React.FC = ({ open, onClose, autoStart = true } {phase === 'error' && (

- 자동 업데이트가 설정되지 않았을 수 있습니다. 웹 PC 프로그램 탭에서 dmg를 받아 다시 설치해 주세요. + 자동 업데이트가 설정되지 않았을 수 있습니다. 웹 PC 프로그램 탭에서 + macOS는 dmg, Windows는 exe 설치 파일을 받아 다시 설치해 주세요.

)} diff --git a/scripts/build-desktop.sh b/scripts/build-desktop.sh index 3354549..4c3e1f9 100755 --- a/scripts/build-desktop.sh +++ b/scripts/build-desktop.sh @@ -88,9 +88,11 @@ collect_updater_artifacts() { -name '*.app.tar.gz' -o \ -name '*.tar.gz' -path '*/bundle/macos/*' -o \ -name '*.nsis.zip' -o \ - -name '*-setup.nsis.zip' \ + -name '*-setup.nsis.zip' -o \ + -name '*-setup.exe' -path '*/bundle/nsis/*' \ \) -type f 2>/dev/null | while read -r f; do cp -f "$f" "$UPDATES_DIR/" + [[ -f "${f}.sig" ]] && cp -f "${f}.sig" "$UPDATES_DIR/" echo " updater bundle: $(basename "$f")" done } diff --git a/scripts/generate-desktop-latest-json.mjs b/scripts/generate-desktop-latest-json.mjs index a276856..f2606d5 100644 --- a/scripts/generate-desktop-latest-json.mjs +++ b/scripts/generate-desktop-latest-json.mjs @@ -60,6 +60,8 @@ for (const f of files) { addPlatform('darwin-aarch64', f); } else if (lower.endsWith('.nsis.zip') || (lower.includes('setup') && lower.endsWith('.zip'))) { addPlatform('windows-x86_64', f); + } else if (lower.endsWith('-setup.exe') || (lower.includes('setup') && lower.endsWith('.exe'))) { + addPlatform('windows-x86_64', f); } else if (lower.endsWith('.app.tar.gz')) { // universal mac fallback if (!platforms['darwin-aarch64']) addPlatform('darwin-aarch64', f);