You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M4环境下用Docker构建Windows版Electron应用报错求助

在Mac M4上通过Docker构建Windows版Electron应用解决mono断言错误

错误原因

这个offset == (gint32)offset断言错误,是由于Mac M4的arm64架构通过Docker模拟amd64环境时,electronuserland/builder:wine-mono镜像内的mono版本与架构模拟层不兼容导致的。

解决方案

方案一:更换镜像并使用electron-builder构建(推荐)

electron-builder在Docker跨平台构建场景下兼容性更成熟,操作步骤如下:

  1. 替换Docker镜像:使用electronuserland/builder:latest替代wine-mono镜像,该镜像自带完整的wine、node.js及构建依赖
  2. 执行构建命令:
    docker run --rm -it --platform linux/amd64 -v /Users/me/Code/desktop_app/app:/project electronuserland/builder:latest /bin/bash -c "npm install && npx electron-builder --win --x64"
    
    • 若本地已安装依赖,可跳过npm install,但跨架构环境下重新安装依赖能避免潜在的架构不兼容问题
  3. (可选)在package.json中配置构建脚本,简化后续操作:
    在package.json中添加以下内容:
    {
      "scripts": {
        "build:win": "electron-builder --win --x64"
      },
      "build": {
        "appId": "com.yourcompany.yourapp",
        "win": {
          "target": "nsis"
        }
      }
    }
    
    之后构建命令可简化为:
    docker run --rm -it --platform linux/amd64 -v /Users/me/Code/desktop_app/app:/project electronuserland/builder:latest /bin/bash -c "npm install && npm run build:win"
    

方案二:坚持使用Electron Forge的替代方案

如果必须使用Electron Forge,可尝试手动在兼容的amd64镜像中搭建环境:

  1. 启动Ubuntu 22.04镜像:
    docker run --rm -it --platform linux/amd64 ubuntu:22.04
    
  2. 在容器内安装依赖:
    apt update && apt install -y wine64 nodejs npm
    npm install -g @electron-forge/cli
    
  3. 进入项目目录,执行构建:
    cd /project
    npm install
    npx electron-forge make --platform=win32 --arch=x64
    

内容的提问来源于stack exchange,提问作者skunkwerk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 19:52:32