【问题标题】:Electron — Can't get custom icon to appearElectron - 无法显示自定义图标
【发布时间】:2017-08-11 04:21:17
【问题描述】:

我在以两种不同方式为我的 Electron 应用设置图标时遇到问题:

非打包(通过终端运行应用)

我的 main.js 确实指定了一个 'icon' 值,指向图标文件,但它不适用。

打包(使用电子打包器)

我的 package.json 文件指定了 'icon' 键,指向图标文件,并且我在 build 目录中有 .icns (Mac) 文件。我使用electron-packager构建app,但是没有应用icon,而是使用默认的electron icon。

不知道我在这里做错了什么,一切似乎都是正确的。

【问题讨论】:

标签: node.js icons electron packaging


【解决方案1】:

如果你指的是 Dock 上的图标,在 MAC 上应该使用:

const app = electron.app;
const image = electron.nativeImage.createFromPath(
  app.getAppPath() + "/public/YOUR_APP_IMAGE_NAME"
);
app.dock.setIcon(image);

【讨论】:

    【解决方案2】:

    这里有一个很好的教程:

    按照步骤操作,但不要跳过任何内容。

    这也是GitHub上的一个相关问题:

    更多链接在这里:

    【讨论】:

    • 第一个链接解决了我打包的图标问题,似乎 --icon 标志是强制性的,尽管 icon 键值。该教程暗示但没有直接说明在 Main.js 中设置未打包的图标路径仅适用于 Ubuntu。这是真的?未打包的图标对我来说更重要,因为我同时处理许多电子应用程序。
    【解决方案3】:

    如果您在 Mac OS 上遇到此问题,则可能是图标缓存搞砸了。对我来说就是这样。我使用以下命令清除它:

    sudo rm -rfv /Library/Caches/com.apple.iconservices.store; sudo find /private/var/folders/ \( -name com.apple.dock.iconcache -or -name com.apple.iconservices \) -exec rm -rfv {} \; ; sleep 3;sudo touch /Applications/* ; killall Dock; killall Finder
    

    然后我再次构建了应用程序,这一次我有我用electron-packager 指定的图标。

    【讨论】:

      【解决方案4】:

      您可以将此脚本添加到 package.json 中,它工作得非常好。主要是因为路径问题。

      "package-mac": "electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns --prune=true --out=release-builds",
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-18
        • 1970-01-01
        • 2015-11-09
        • 2019-12-23
        相关资源
        最近更新 更多