Improve macOS Build and Distribution#22
Merged
JasonWarrenUK merged 3 commits intomainfrom Dec 10, 2025
Merged
Conversation
Configure electron-forge to generate DMG files for macOS distribution using ULFO format (universal flash-optimized) for better compression and compatibility. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add .nvmrc to specify Node.js 22 as the required version for this project, resolving native module compatibility issues with Node.js 24. Update all electron-forge packages from 7.6.0 to 7.10.2 for improved tooling support. Also bump version to 1.1.4, add codesign script for local macOS builds, and update contributors list. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add improved DMG installer configuration including custom name, window sizing, and drag-to-Applications layout. Remove deprecated manual codesign script from package.json as it's no longer needed. - Configure DMG with branded name "ILR File Creator" - Set custom window dimensions (660x400) for installer - Add file and Applications folder positioning for better UX - Include commented asset paths for future background/icon customization - Remove manual codesign script (handled by forge) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Modernises the Electron Forge build pipeline with enhanced DMG installer configuration and upgraded tooling. Provides a more professional macOS installation experience with custom installer layout and drag-to-Applications UX.
Tip
After pulling, run
npm installto ensure you have the updated Electron Forge v7.10.2 dependencies. Node.js 22 is now required (check.nvmrc).Changes
Build Configuration
DMG Maker Enhancements
Electron Forge Upgrade
Node.js Version Pinning
.nvmrcforge.config.jsReplaced basic ZIP maker with fully-configured DMG maker for macOS platform. Added installer customisation options including window sizing and file positioning for optimal user experience. Included commented hooks for future asset customisation (background image, volume icon).
package.jsonRemoved deprecated manual
codesignscript - code signing is now handled automatically by Electron Forge during the build process..nvmrcAdded Node.js version specification (v22) to ensure consistent development and build environments.
package-lock.jsonUpdated all
@electron-forge/*packages from v7.6.0 to v7.10.2, including:Includes dependency tree updates for improved compatibility and security.
Summary
Like swapping out your hand-drawn "please drag me to Applications" sticky note for a professionally printed instruction manual with colour diagrams, proper margins, and a laminated finish - except the sticky note was actually just you shouting at users through their screen, and now you've learned to communicate like a civilised application.