I'm having an issue setting the icon for my Electron app in two different ways:
Non-Packaged (Running the app via terminal)
My main.js does specify an 'icon' value, pointing to the icon file, but it does not apply.
Packaged (with electron-packager)
My package.json file specifies the 'icon' key, pointing to the icon file, and I have the .icns (Mac) file in the build directory. I used electron-packager to build the app, but the icon is not applied, the default electron icon is used instead.
Not sure what I'm doing wrong here, everything appears correct.
There is a good tutorial here:
- https://www.christianengvall.se/electron-app-icons/
Follow the steps but make sure you don't skip anything.
This is also a relevant issue on GitHub:
- https://github.com/electron-userland/electron-builder/issues/289
More links here:
- https://discuss.atom.io/t/changing-electron-app-icon-and-information/18631
You can add this script to package.json and it works perfectly fine. Mostly its because of the path issues.
"package-mac": "electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns --prune=true --out=release-builds",
If you mean the icon on the dock, on MAC can should use:
const app = electron.app;
const image = electron.nativeImage.createFromPath(
app.getAppPath() + "/public/YOUR_APP_IMAGE_NAME"
);
app.dock.setIcon(image);