How to Distribute Desktop Apps (GitHub Releases Automation)

Опубликовано: 19 Май 2026
на канале: Samik Choudhury
77
0

Optimal distribution strategy for Electron.js applications in 2025. Using macOS 101 starter kit to publish Windows, Linux, and Mac builds automatically to GitHub releases. Complete workflow: npm run release, code signing per platform, upload automation with GH_TOKEN. Network issue troubleshooting shown during live build.

Timestamps:

0:00 - Introduction: Best Way to Distribute Electron Apps in 2025
0:19 - macOS 101 Starter Kit: Package.json Overview
0:42 - GitHub Releases: ARM64, x64, EXE Files Shown
1:16 - Live Terminal Demo: Version 1.0.2 Build Process
1:54 - Mac Build Success and Windows Build Start
2:18 - Windows Upload with Force Signing Off Warning
2:30 - Network Issue During Linux Build Upload
2:47 - Package.json Configuration: Linux ARM64 and x64
3:19 - NPM Scripts: Release Linux Command Breakdown
3:34 - Rebuilding Linux Application Live
3:57 - Excalidraw Workflow: Terminal → Build → Sign → Upload
5:02 - GitHub Token Setup and Repository Configuration
5:31 - Distribution Flow for Every Release Explained
6:01 - AWS Alternative for Files Over 2GB

Distribution Workflow:

npm run release command builds for Windows, Linux, Mac. Creates git tag automatically and pushes to remote. Electron Builder packages applications per platform. Code signing happens during build (varies by OS). GitHub publish always flag uploads to releases automatically. Personal access token (GH_TOKEN) required for repository access.

Platform-Specific Configuration:

macOS: Code signing and notarization included. Windows: Force signing off (self-signed until certificate purchased). Linux: App image for ARM64 and x64 architecture. DEB target for Debian-based distributions. Force code signing false for Linux self-signed builds.

Network Issues Handled:

Network interruption during initial upload shown. Command automatically retries failed uploads. Linux build completed despite earlier Mac/Windows network issues. Same npm run release:linux command rebuilds and reuploads. Packaging shown in real-time terminal output.

GitHub Releases Setup:

Owner and repo name configured in package.json. Export GH_TOKEN environment variable with personal access token. Starter kit shows working configuration for macOS-101 repository. Users must change owner/repo to their own GitHub account. Without proper token, upload fails with authentication error.

File Size Limitations:

GitHub releases support files under 2GB. DMG, EXE, or App Image over 2GB won't upload. Alternative: Configure AWS S3 bucket with credentials. AWS key setup enables large file distribution. Fallback option for enterprise applications with large assets.

Starter Kit Advantages:

Pre-configured package.json with all platforms. npm scripts ready for Windows, Linux, Mac. GitHub automation built-in with proper configuration. Code signing structure established per platform. Saves hours of distribution pipeline setup.

Perfect For:

Electron.js developers shipping cross-platform apps. Solo founders needing reliable distribution workflow. Teams wanting automated GitHub release pipeline. Anyone completing macOS 101 tutorial series. Developers avoiding distribution configuration complexity.

#ElectronJS #AppDistribution #GitHubReleases #CrossPlatform #CodeSigning #DesktopApps #ElectronBuilder #WindowsApps #LinuxApps #macOSDevelopment #NPMScripts #ReleaseAutomation #SoftwareDistribution #DeveloperWorkflow #BuildPipeline