【Electron】Electron Icon 图标说明、及常见问题

【Electron】Electron Icon 图标说明、及常见问题

其实各种打包模块都有相关的文档说明,相关链接如下:

electron-builder://www.electron.build/icons.html

electron-packager: //electron.github.io/electron-packager/main/interfaces/electronpackager.options.html#icon

1、图片格式

  • windows 和 macos 的 图标都是复合格式,包含了多种尺寸和颜色模式,Linux 就是多张png,electron 例子里就多各种尺寸。PS:不要把png直接改成 ico。

  • windows :.ico 文件,下图为 iConvert Icons 的默认设置。

    windows

  • macos:.icns 文件,下图为 iConvert Icons 的默认设置。

2、工具

iConvert Icons、icoFx、AppIcon GeneratorMakeAppIcon 等。

  • iConvert Icons 是支持多平台的,但online 版本已经无法使用了,网上还有离线版本,app store 和 microsoft store 上应该还可以找到,但可能要收费。
  • icoFx 它更像是一个编辑器,同时也支持 windows、mac的图标生成。
  • AppIcon Generator 支持 macOS、iOS、watchOS 和 Android 的图标生成。
  • MakeAppIcon 在线工具,支持移动图标的生成。

3、常见问题

  • windows上图标未更换。图标已经换了,但新打出的包或是安装后的 exe 图标没有更换。这个时候可以右击你的exe或是安装包点属性,看看图标是否正常,如果这里的图标正常,那其实就是成功的了。主要原因是因为 windows 图标缓存机制导致的,其实就不用管了,但看着不爽的话,可以清除系统的图标缓存。PS:清除行为慎用。最后会提供清理的批处理文件。
  • windows 窗口或任务栏图标未更换成功。这种情况一般是 ico 文件中,缺少小尺寸图标,如 缺少 1616 或 3232 的图标。

4、windows 清理缓存批处理文件

将下面的内容保存成 bat 文件,执行就可以。PS:有可能需要以管理员权限执行。

rem 关闭Windows外壳程序explorer

taskkill /f /im explorer.exe

rem 清理系统图标缓存数据库

attrib -h -s -r "%userprofile%\AppData\Local\IconCache.db"

del /f "%userprofile%\AppData\Local\IconCache.db"

attrib /s /d -h -s -r "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\*"

del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_32.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_96.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_102.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_256.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_1024.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_idx.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_sr.db"

rem 清理 系统托盘记忆的图标

echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v IconStreams
echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v PastIconsStream

rem 重启Windows外壳程序explorer

start explorer