我在做Electron打包时,碰到一个问题,package.json
的配置:
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,就可以了。