LinusU / LinusU/node-appdmg

App crashes when using appdmg built with node 14

Open
#193 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
1.7k
Forks
158
PR merge metrics
No merged PRs in 30d

Description

MacOS High Sierra 10.13.6

NW.js 0.41.3 (node 12.12.0) works OK with appdmg installed with 12.18.0
NW.js 0.48.3 (node 14.11.0) FAILS with appdmg installed with 14.9.0

App crashes in the 'Making all the visuals' step. If the ds.write is skipped then appdmg will successfully create a DMG but with no visuals.

The code that is causing the issue is the ds.setBackgroundPath line - if this is commented out then again a good DMG will be created but with no background visuals.
The other bits of the visuals steps appear OK.

A console.log prior to this line shows the same format whether appdmg is using node 12 or 14 but only fails with 14 install.

appdmg.js L371 ds.setBackgroundPath(path.join(global.temporaryMountPath, global.bkgname))
gives eg: /Volumes/PepperFlash Install 18/.background/dmgback.tiff

Seems like appdmg installed with node 14 doesn't like tiff being written to the ds-store module.

The original image being used for the background was dmgback.png (82k) which obviously gets converted to a tiff.

appdmg.json -

{
"title": "PepperFlash Install",
"background": "Extras/dmg/dmgback.png",
"icon": "Extras/dmg/dmg.icns",
"contents": [
{
"x": 260,
"y": 350,
"type": "link",
"path": "/Applications"
},
{
"x": 90,
"y": 350,
"type": "file",
"path": "application.app"
},
{
"x": 490,
"y": 350,
"type": "file",
"path": "Extras/dmg/readme.txt"
},
{
"x": 512,
"y": 900,
"type": "position",
"path": ".VolumeIcon.icns"
}
]
}

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at appdmg.js line 371, where ds.setBackgroundPath is called during the “Making all the visuals” step, and reproduce the failure with the supplied Node 14 and NW.js versions. Investigate the ds-store background-path handling; done means a DMG is created without crashing and retains its background visuals.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
build-system, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.