electron-builder: Linux build is not using productName

  • Version: 19.18.0

  • Target: linux squirrel

I am trying to build for Linux with -- linux configuration and I am using productName in package.json.

For a mac build, productName is picked up correctly for both artifacts (dmg and zip).

For linux name is being used. This causes an error.

I cannot use name for product name as my app is also a scoped npm package.

package.json example:

"scripts": {
  build:mac: build --mac,
  build:win: build --win,
  build:linux: build --linux,
},
"version":"0.0.0",
"name": "@myscope/my-package-name",
"productName": "My Desktop App",
"build": {
    "appId": ".....",
...

Error:

xorriso : FAILURE : Cannot acquire drive '.../repos/electron/myapp/build/@myscope/my-package-name-0.0.0-x86_64.AppImage'
xorriso : aborting : -abort_on 'FAILURE' encountered 'FAILURE'

    at .../repos/electron/.../electron-builder-util/src/util.ts:67:16

I have a related issue for Windows Squirrel but that has a workaround (thanks to @develar for pointing it out):

https://github.com/electron-userland/electron-builder/issues/1879

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 8
  • Comments: 18 (8 by maintainers)

Commits related to this issue

Most upvoted comments

Please reopen, this still seems not to be working: https://github.com/tunepack/tunepack-desktop/issues/6#issuecomment-497230517

When

"name": "tunepack-desktop", 
"productName": "Tunepack", 

is set, then we currently get

Tunepack-1.0.6-x86_64.AppImage would be expected. In other words, the dmg and the AppImage should always use the same name.

The correct option to set is linux.artifactName.

e.g. package.json

{
  "name": "@my-scope/my-package"
  ...
  "build": {
    ...
    "linux": {
      "artifactName": "my-package-${version}"
    }
  }
}