我知道我回答这个问题已经晚了,但我仍然会继续。我通过艰难的方式学到了关于应用程序图标的这些东西。我认为通过比较开发和分发阶段可以更好地理解这个主题。
开发阶段
这相当于通过“npm start”运行应用程序。在此阶段,无论您添加什么代码,都无法替换Electron的默认图标。
唯一可能的是将重叠图标放在默认图标之上。但是,这可能不是您要寻找的解决方案,因为它不是一个图标替换而只是一个覆盖层。这就是
Icon overlays中所记录的内容。
OP上面的代码实际上是所谓的图标覆盖层的示例。
win = new BrowserWindow({
width: 600,
height: 670,
icon: `${__dirname}/dist/assets/imgs/logo.png`
})
此外,图标覆盖也可以用来替换
通知图标。
发行阶段
这与使用以下任一分发框架相同:
- electron-forge
- electron-builder
- electron-packager
为您的应用程序创建可执行文件(.app / .exe)。在此阶段,您实际上可以替换Electron的默认图标。
例如,在electron-packager中,您可以在打包过程中指定要使用的图标,如下所示:
cd /path/to/app
npx electron-packager ./ --platform=darwin --icon=/path/to/your-custom-icon.icns
npx electron-packager ./ --platform=win32 --arch=x64 --icon=/path/to/your-custom-icon.ico
使用 electron-forge 或 electron-builder 是不同的方法。我还没有尝试过它们。
整个重点是……只有在应用程序已经打包时,才能真正替换 Electron 的默认图标。
electron-builder
时,如果你使用 CRA,它会以某种方式干扰默认图标检测,因此你需要在构建器配置中使用extends: null
来禁用 react-cra 预设。 - Arkellys