feat(packaging): add macOS icon.icns + build:icon-icns script

electron-builder's mac block declared 'icon: assets/icon.icns' but the
file was never generated, so macOS builds shipped with the default
Electron icon. The build would succeed but the .app looked generic.

Add scripts/build-icon-icns.js — a 50-line node script that packs the
existing PNGs from assets/icons/ (16/32/64/128/256/512/1024 + 48 small
+ 16/32/128/256 @2x retina) into a valid ICNS file. No native deps;
works on Linux, mac, and Windows runners alike (avoids the mac-only
'sips' that png2icns requires).

Wired into npm via 'npm run build:icon-icns'. Local build:linux now
parses the ICNS correctly and produces AppImage/deb/snap.
This commit is contained in:
2026-06-06 22:43:06 +05:30
parent 09d9f6bdd1
commit 3c4cc985fb
3 changed files with 77 additions and 1 deletions
+2 -1
View File
@@ -32,7 +32,8 @@
"dist": "electron-builder --publish=never",
"dist:all": "electron-builder -mwl",
"download-tools": "node scripts/download-tools.js",
"generate-icons": "node scripts/generate-icons.js"
"generate-icons": "node scripts/generate-icons.js",
"build:icon-icns": "node scripts/build-icon-icns.js"
},
"keywords": [
"markdown",