Electron打包图标修改失败问题

102 阅读1分钟

我在做Electron打包时,碰到一个问题,package.json 的配置:

{
    "build": {
    "appId": "com.sample.xxxx",
    "productName": "xxxx",
    "copyright": "Copyright © 2016 xxxx",
    "compression": "store",
    "files": [...省略不写],
    "directories": {
      "output": "dist/${productName}"
    },
    "electronDownload": {
      "mirror": "https://npmmirror.com/mirrors/electron/"
    },
    "nsis": {
      "oneClick": false,
      "installerLanguages": [
        "zh_CN"
      ],
      "language": "2052",
      "perMachine": false,
      "shortcutName": "IWRadarGUI",
      "allowToChangeInstallationDirectory": true,
      "installerIcon": "build/icons/icon.ico",
      "uninstallerIcon": "build/icons/icon.ico"
    },
    "win": {
      "target": "nsis",
      "executableName": "xxxx",
      "signAndEditExecutable": false,  // 注意这个地方
      "icon": "build/icons/icon.ico"
    },
    "icon": "build/icons/icon.ico",
    "artifactName": "${productName}-${version}-setup.${ext}",
    "extraResources": [
      {
        "from": "src/static",
        "to": "static",
        "filter": []
      },
      {
        "from": "software/OspiTool_V3.0.1",
        "to": "OspiTool_V3.0.1",
        "filter": []
      }
    ]
  },
}

打包出来发现 win-unpacked 中的应用图标总是恢复默认,并没有按照自定义的图标显示。而安装包的图标是正常修改了的。因此可以断定,图标本身没有问题,是nsis或者win的问题。最终通过一行一行代码删除并重新打包无数次,测试发现:

"signAndEditExecutable": false, 这个字段值为false时会直接影响文件签名,导致图标也无法修改。

所以将它改为true,就可以了。