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

@electron-forge/maker-dmg配置DMG图标位置时找不到.app文件如何解决

问题原因

你遇到的路径报错核心原因是@electron-forge/maker-dmg执行时的临时工作目录和你的.app构建输出目录不是同一个位置,直接写相对路径Gallery.app会被定位到临时目录下,自然找不到构建产物。
而你手动挂载DMG后用到的/Volumes/Gallery/Gallery.app路径仅在DMG生成挂载后才存在,构建阶段DMG还未生成,该路径必然无效。

可行解决方案

推荐使用函数式动态配置获取.app的真实输出路径,Electron Forge 的 maker 配置支持传入函数,会自动注入包含构建输出路径的参数,无需你手动拼接固定路径,兼容多架构打包场景:

const path = require('path');

// 放到你的forge配置的makers数组中
{
  name: "@electron-forge/maker-dmg",
  config: (makerOptions) => ({
    title: "Gallery",
    background: "src/assets/installer-assets/installBackground.png",
    format: "ULFO",
    icon: "src/assets/installer-assets/brand-icon.icns",
    contents: [
      { 
        x: 192, 
        y: 344, 
        type: "file", 
        path: path.join(makerOptions.appDirectory, 'Gallery.app')
      },
      { x: 428, y: 344, type: "link", path: "/Applications" }
    ]
  })
}

其中makerOptions.appDirectory是Electron Forge构建完应用后,.app文件所在的目录,直接拼接你的应用名即可准确定位到构建产物。

注意事项

  • 确保拼接的应用名和你package.json中配置的productName完全一致,macOS文件系统大小写敏感,大小写错误也会触发找不到文件的报错
  • 如果你是固定架构打包,也可以直接写死绝对路径,但函数式配置兼容性更高,无需修改就能适配arm64、x64等不同架构的构建输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:06:00