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

基于M1 Max设备,如何通过Electron Forge构建适配Intel Mac的DMG安装包?

解决Electron Forge打包DMG无法在Intel Mac运行的问题

你遇到的核心问题是在M1 Max(arm64架构)设备上构建的DMG仅包含arm64版本,而Intel Mac依赖x64架构的二进制文件。下面结合你的配置给出具体解决方案:

1. 配置双架构通用打包

在packagerConfig中添加arch字段,指定同时构建x64和arm64架构,生成兼容两种Mac的通用二进制包:

"packagerConfig": {
  "extendInfo": "Info.plist",
  "icon": "images/mac-icon.icns",
  "arch": ["x64", "arm64"], // 新增:指定双架构构建
  "osxSign": {
    "identity": "XXX",
    "hardened-runtime": true,
    "entitlements": "entitlements.plist",
    "entitlements-inherit": "entitlements.plist",
    "signature-flags": "library"
  },
  "osxNotarize": {
    "appleId": "XXX",
    "appleIdPassword": "XXX"
  }
}

2. 确认依赖版本兼容性

你使用的@electron-forge/maker-dmg@6.0.0-beta.66和electron@21.0.0都已经原生支持Universal Binary构建,无需升级版本,但要确保本地环境的Xcode Command Line Tools是最新状态,避免架构打包异常。

3. 签名与公证的注意事项

双架构包的签名和公证无需额外配置,但要注意:

  • 确保你的签名身份有足够权限处理通用二进制文件
  • 公证过程可能会比单架构稍慢,保持网络稳定避免失败

4. 重新构建并验证

执行以下命令重新生成DMG:

npm run make -- --platform darwin

构建完成后,可以在Intel Mac上验证:右键DMG内的应用程序 → 显示包内容 → 进入Contents/MacOS目录,执行命令lipo -info <你的应用二进制文件名>,如果输出包含x86_64和arm64,说明通用包构建成功。

额外排查点

  • 检查Info.plist是否存在限制架构的配置(比如LSArchitecturePriority),如果有需调整为同时支持x64和arm64
  • 若仍有问题,可以尝试单独构建x64架构包测试:npm run make -- --platform darwin --arch x64,确认是否是通用包构建环节的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 16:32:34