问题或动机
目前 Qclaw 没有 Linux 构建目标,希望在 Linux 系统(如 Ubuntu 服务器/桌面)上运行 Qclaw 的用户无法构建可执行文件。
通过分析源码,发现以下 4 个阻断点:
electron-builder.json 中没有定义 linux 构建目标(目前只有 mac 和 win)
forceCodeSigning: true 会阻断 Linux 构建——此项由 check-mac-release-env.mjs 强制要求,不能直接改为 false,需要按平台条件判断
scripts/after-all-artifact-build.cjs 调用了 macOS 专有工具 codesign,在 Linux 上会报错,需添加平台判断(参考 after-sign-notarize.cjs 已有的 if (process.platform !== 'darwin') return)
package.json 有 package:mac 脚本但缺少对应的 package:linux
建议方案
- 在
electron-builder.json 添加 linux 配置节,包含 AppImage 和 deb 目标
- 将
forceCodeSigning 改为按平台条件判断
- 在
scripts/after-all-artifact-build.cjs 添加平台判断守卫
- 在
package.json 添加 package:linux 构建脚本
替代方案
通过 npm run dev 配合 Xvfb 虚拟显示可临时运行,但不是正式发行方式。
补充信息
- 操作系统:Ubuntu 24.04 LTS
- Qclaw 版本:2.2.0
- Electron Builder:24.x
- 建议分支名:feat/linux-build-target
- 本人可以参与实现此功能,欢迎指导
问题或动机
目前 Qclaw 没有 Linux 构建目标,希望在 Linux 系统(如 Ubuntu 服务器/桌面)上运行 Qclaw 的用户无法构建可执行文件。
通过分析源码,发现以下 4 个阻断点:
electron-builder.json中没有定义linux构建目标(目前只有mac和win)forceCodeSigning: true会阻断 Linux 构建——此项由check-mac-release-env.mjs强制要求,不能直接改为false,需要按平台条件判断scripts/after-all-artifact-build.cjs调用了 macOS 专有工具codesign,在 Linux 上会报错,需添加平台判断(参考after-sign-notarize.cjs已有的if (process.platform !== 'darwin') return)package.json有package:mac脚本但缺少对应的package:linux建议方案
electron-builder.json添加linux配置节,包含AppImage和deb目标forceCodeSigning改为按平台条件判断scripts/after-all-artifact-build.cjs添加平台判断守卫package.json添加package:linux构建脚本替代方案
通过
npm run dev配合 Xvfb 虚拟显示可临时运行,但不是正式发行方式。补充信息