【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