Skip to content

feat: Add Linux build support (AppImage/deb) #62

@Mund99

Description

@Mund99

问题或动机

目前 Qclaw 没有 Linux 构建目标,希望在 Linux 系统(如 Ubuntu 服务器/桌面)上运行 Qclaw 的用户无法构建可执行文件。

通过分析源码,发现以下 4 个阻断点:

  1. electron-builder.json 中没有定义 linux 构建目标(目前只有 macwin
  2. forceCodeSigning: true 会阻断 Linux 构建——此项由 check-mac-release-env.mjs 强制要求,不能直接改为 false,需要按平台条件判断
  3. scripts/after-all-artifact-build.cjs 调用了 macOS 专有工具 codesign,在 Linux 上会报错,需添加平台判断(参考 after-sign-notarize.cjs 已有的 if (process.platform !== 'darwin') return
  4. package.jsonpackage:mac 脚本但缺少对应的 package:linux

建议方案

  1. electron-builder.json 添加 linux 配置节,包含 AppImagedeb 目标
  2. forceCodeSigning 改为按平台条件判断
  3. scripts/after-all-artifact-build.cjs 添加平台判断守卫
  4. package.json 添加 package:linux 构建脚本

替代方案

通过 npm run dev 配合 Xvfb 虚拟显示可临时运行,但不是正式发行方式。

补充信息

  • 操作系统:Ubuntu 24.04 LTS
  • Qclaw 版本:2.2.0
  • Electron Builder:24.x
  • 建议分支名:feat/linux-build-target
  • 本人可以参与实现此功能,欢迎指导

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions