背景
目前项目只构建和发布 macOS 安装包。Windows 的打包配置(electron-builder、release.yml)已经写好了但被注释掉,看起来好像只要取消注释就能用,但实际上还有几个跨平台兼容性问题需要先解决。
现状
桌面端主进程代码已经做了 Windows 适配的准备工作:二进制文件名区分了 .exe 后缀,进程清理分别用了 taskkill(Windows)和 killall(macOS),窗口也针对 Windows 做了无边框处理。electron-builder 配置了 NSIS 安装程序,CI 里的 Windows 构建步骤也写好了。
但 server 端的数据目录用了 xdg-basedir 这个库来决定路径(macOS 上是 ~/.local/share/persona-agent/),这个库在 Windows 上返回的是 undefined,代码里直接 throw 了,所以 server 在 Windows 上跑不起来。需要改成 Windows 上用 %APPDATA%/persona-agent/,或者直接用 Electron 的 app.getPath('userData') 传给 server。
另外 bun build --compile 在 Windows 上输出的二进制后缀是 .exe,而 build 脚本里的 --outfile 写死成了 persona-agent-server 没带后缀。electron-builder.yml 的 extraResources 里引用的路径也是按 macOS 写的。cloudflared 的路径引用(getCloudflaredBinPath)在 Windows 上也需要加 .exe 后缀。
这些问题都不大,但需要逐个排查和修复,然后才能正式开启 Windows 构建。
背景
目前项目只构建和发布 macOS 安装包。Windows 的打包配置(electron-builder、release.yml)已经写好了但被注释掉,看起来好像只要取消注释就能用,但实际上还有几个跨平台兼容性问题需要先解决。
现状
桌面端主进程代码已经做了 Windows 适配的准备工作:二进制文件名区分了
.exe后缀,进程清理分别用了taskkill(Windows)和killall(macOS),窗口也针对 Windows 做了无边框处理。electron-builder 配置了 NSIS 安装程序,CI 里的 Windows 构建步骤也写好了。但 server 端的数据目录用了
xdg-basedir这个库来决定路径(macOS 上是~/.local/share/persona-agent/),这个库在 Windows 上返回的是undefined,代码里直接 throw 了,所以 server 在 Windows 上跑不起来。需要改成 Windows 上用%APPDATA%/persona-agent/,或者直接用 Electron 的app.getPath('userData')传给 server。另外
bun build --compile在 Windows 上输出的二进制后缀是.exe,而 build 脚本里的--outfile写死成了persona-agent-server没带后缀。electron-builder.yml的extraResources里引用的路径也是按 macOS 写的。cloudflared 的路径引用(getCloudflaredBinPath)在 Windows 上也需要加.exe后缀。这些问题都不大,但需要逐个排查和修复,然后才能正式开启 Windows 构建。