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

Electron Forge 打包兼容x64与arm64的macOS应用失败求助

Electron Forge 打包兼容x64与arm64的macOS应用失败求助

兄弟,我之前在M系列Mac上打包Electron通用应用的时候也踩过完全一样的坑,你遇到的问题大概率是配置细节或者版本兼容的问题,给你几个亲测有效的解决思路:

  • 先确认版本兼容性
    低版本的Electron Forge和Electron对Universal架构的支持很不完善,建议先升级到最新稳定版:

    npm install @electron-forge/cli@latest @electron-forge/maker-zip@latest electron@latest
    

    注意Electron版本至少要在v12以上,官方从这个版本开始正式支持通用二进制打包。

  • 修正package.json的配置层级
    你之前的配置结构有点问题,Forge的targetArch应该直接放在packagerConfig下,而不是嵌套在config里,试试调整成这样:

    "forge": {
      "packagerConfig": {
        "targetArch": "universal",
        "asar": true
      },
      "makers": [
        {
          "name": "@electron-forge/maker-zip",
          "platforms": ["darwin"]
        }
      ]
    }
    

    配置完后先清理缓存再打包:

    npx electron-forge clean && npm run package
    
  • 手动用@electron/universal合并(兜底方案)
    如果上面的方法还是不行,可以先分别打包两个架构的版本,再手动合并:

    1. 先打包x64版本:
      npx electron-forge package --arch=x64
      
    2. 再打包arm64版本:
      npx electron-forge package --arch=arm64
      
    3. 安装依赖并写合并脚本:
      npm install @electron/universal --save-dev
      
      创建merge-universal.js文件:
      const { makeUniversalApp } = require('@electron/universal');
      
      async function createUniversalApp() {
        try {
          await makeUniversalApp({
            x64AppPath: './out/你的应用名-darwin-x64/你的应用名.app',
            arm64AppPath: './out/你的应用名-darwin-arm64/你的应用名.app',
            outAppPath: './out/你的应用名-darwin-universal/你的应用名.app'
          });
          console.log('通用版本生成成功!');
        } catch (err) {
          console.error('合并失败:', err);
        }
      }
      
      createUniversalApp();
      
    4. 运行脚本完成合并:
      node merge-universal.js
      
  • 额外小技巧
    打包前可以设置环境变量强制开启多架构打包:

    export ELECTRON_BUILD_ALL_ARCHS=1 && npm run package
    

备注:内容来源于stack exchange,提问作者Vandervidi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:24:52