在 Mac 上为基于 Electron 的 App 提供不同的 Dock 和 Tray 图标?

Provide different Dock and Tray icons for Electron based App on Mac?

我进行了一些研究,到目前为止只找到了有关模板图像的资源,但没有找到明确的指南。我正在构建一个 Electron 应用程序 (Electron 8.0)。我确实为深色模式和常规模式定制了图标。

我知道我可以提供像这样的高 dpi 图标:

Dock 图标在 icns 文件中类似。我想知道我是否可以对深色模式图标和常规模式图标做同样的事情。

我如何需要 prepare/name 我的图标,以便 macOS Catalina 为托盘和 Dock 选择不同的图标,无论是 运行 在常规模式还是在深色模式下?

我是否需要实现一些逻辑来以编程方式切换图标?当我的 Electron 应用程序不是 运行 但主题已切换时,如何执行这样的逻辑?

以编程方式,这很容易实现

const { nativeTheme } = require('electron')

nativeTheme.on('updated', function theThemeHasChanged () {
  updateMyAppTheme(nativeTheme.shouldUseDarkColors)
})

// set tray & dock images here
function updateMyAppTheme(isDark) {
  tray.setImage(isDark? darkTrayImagePath : lightTrayImagePath)
  dock.setIcon(isDark? darkDockImagePath : lightDockImagePath)
}

相关文档: