The first release could not be opened: macOS said "WarpEngine Store is damaged and can't be opened. You should move it to the Bin." Not a wording problem — an integrity one. electron-builder found no signing identity and skipped signing, so the bundle kept only the linker's ad-hoc signature on its main executable, with no resource seal. `codesign --verify` said "code has no resources but signature indicates they must be present", and Gatekeeper reports that as damaged and offers no way past it, unlike an un-notarised app which can at least be approved. `scripts/after-pack.js` now signs the bundle itself during packaging. Measured on a copy unzipped from the artifact with the quarantine flag set by hand: before code has no resources but signature indicates they must be present after valid on disk; satisfies its Designated Requirement and the identifier is ours rather than `Electron`. `syspolicy_check` is down to its expected "adhoc signed" warning. A downloaded copy still has to be approved — that is Gatekeeper policy for anything un-notarised, and notarisation needs a paid Developer ID — so the README and the release notes lead with the one command that does it. Two smaller things the failure turned up: - The self-test was passing silently. With a copy of the app already open, the second process lost the single-instance lock and exited 0 with no output, which reads exactly like success. It now uses its own user-data directory and skips the lock, and it caught a real launch failure immediately afterwards. - The README claimed right-click ▸ Open was enough. It was not, and I had not checked it — replaced with what the measurements support. v1.0.0's attachments are withdrawn rather than left downloadable. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
61 lines
1.4 KiB
JSON
61 lines
1.4 KiB
JSON
{
|
|
"name": "warp-engine-desktop-gui",
|
|
"productName": "WarpEngine Store",
|
|
"version": "1.0.1",
|
|
"description": "Graphical client for a WarpEngine desktop store: install the catalog into your own application menu.",
|
|
"license": "MIT",
|
|
"author": "Teletype Games <games@teletype.hu>",
|
|
"homepage": "https://git.teletypegames.org/stores/warp-engine-desktop-gui",
|
|
"main": "main.js",
|
|
"engines": {
|
|
"node": ">=22"
|
|
},
|
|
"scripts": {
|
|
"start": "electron .",
|
|
"smoke": "node scripts/smoke.js",
|
|
"dist": "electron-builder",
|
|
"dist:mac": "electron-builder --mac",
|
|
"dist:win": "electron-builder --win",
|
|
"dist:linux": "electron-builder --linux",
|
|
"uitest": "electron . --selftest"
|
|
},
|
|
"devDependencies": {
|
|
"electron": "^43.4.0",
|
|
"electron-builder": "^26.15.3"
|
|
},
|
|
"build": {
|
|
"appId": "org.teletypegames.warpstore.gui",
|
|
"productName": "WarpEngine Store",
|
|
"files": [
|
|
"main.js",
|
|
"preload.js",
|
|
"lib/**/*",
|
|
"renderer/**/*"
|
|
],
|
|
"mac": {
|
|
"category": "public.app-category.games",
|
|
"target": [
|
|
"dmg",
|
|
"zip"
|
|
]
|
|
},
|
|
"win": {
|
|
"target": [
|
|
"nsis",
|
|
"portable"
|
|
]
|
|
},
|
|
"linux": {
|
|
"category": "Game",
|
|
"target": [
|
|
"AppImage",
|
|
"deb"
|
|
]
|
|
},
|
|
"afterPack": "scripts/after-pack.js"
|
|
},
|
|
"allowScripts": {
|
|
"electron@43.4.0": true
|
|
}
|
|
}
|