Repository navigation
Updraft v0.3.2
⚠️ 从 v0.3.1 升到本版时,仍需手动关闭一次
本版修的正是「升级完不自动退出、得手动关窗口」这个问题。但你现在跑的 v0.3.1 里就是那段坏掉的代码,
所以 0.3.1 → 0.3.2 这一次仍需手动关掉旧窗口;从本版开始,后续升级才会自动退出并打开新版本。
根因(两个独立问题,第二个被第一个掩盖)
- 自更新成功态的面板一直挂着时,
NSApp.terminate是空操作——调用 14ms 就返回,
连applicationShouldTerminate都不会被问。手动关闭之所以有效,正是因为它先把面板收了起来。 - 同 bundle id 已在运行时,
NSWorkspace.open只做激活、不开新实例(返回true但进程数不变)。
所以「自动打开新版本」此前也一直是坏的。
改法
收尾顺序改为「先收面板 → 0.6s 优雅退出 → 再 1s 兜底 exit(0)」;拉起新版本改走 /usr/bin/open -n。
新版本没拉起来就不退出(fail closed),面板会写明「没能自动打开新版本」,而不是留下一个已经
换了包却没人管的进程。
真机端到端验证过:本地造 0.3.0 → 触发下载真实 release → 旧进程自己走、新进程起来、磁盘版本更新,
退出时间线里没有兜底那行(说明走的是优雅退出,不是强杀)。
What's Changed
Full Changelog: v0.3.1...v0.3.2