AeThex Desktop App - Release Guide

This guide covers building, signing, and distributing the AeThex Desktop application.

Quick Start

Prerequisites

  • Node.js 20+

  • npm or yarn

  • For Windows builds: Windows 10/11

  • For macOS builds: macOS 11+ with Xcode Command Line Tools

  • For Linux builds: Ubuntu 20.04+ or equivalent

Building Locally

# Install dependencies
npm install

# Build the desktop app (creates installers in ./dist)
npm run desktop:build

Automated Builds (GitHub Actions)

The repository includes a GitHub Actions workflow that automatically builds for all platforms.

Triggering a Release

  1. Tag a release:

  2. Manual trigger: Go to Actions > Build Desktop App > Run workflow

Build Artifacts

After a successful build, artifacts are available:

  • Windows: AeThex Desktop Terminal-{version}-win-x64.exe

  • macOS: AeThex Desktop Terminal-{version}-mac-{arch}.dmg

  • Linux: AeThex Desktop Terminal-{version}-x64.AppImage, .deb

Code Signing

Windows Code Signing

To sign Windows builds, you need a code signing certificate.

  1. Get a certificate:

    • Purchase from DigiCert, Sectigo, or other CA

    • Or use Azure SignTool with Azure Key Vault

  2. Add GitHub Secrets:

  3. Update electron-builder.yml:

macOS Code Signing & Notarization

Apple requires apps to be signed and notarized for distribution.

  1. Prerequisites:

    • Apple Developer Program membership ($99/year)

    • Developer ID Application certificate

    • App-specific password for notarization

  2. Add GitHub Secrets:

  3. Update GitHub workflow to include notarization:

  4. Update electron-builder.yml:

Auto-Updates

The app is configured to check for updates from GitHub Releases.

How it works:

  1. User installs the app

  2. On launch, app checks GitHub Releases for newer version

  3. If found, prompts user to download and install

Configuration

The publish section in electron-builder.yml configures the update server:

Testing Updates

  1. Build version 1.0.0 and install

  2. Push version 1.0.1 to GitHub Releases

  3. Launch the app - it should detect and offer the update

Customization

App Icons

Replace files in build/icons/:

  • icon.ico - Windows (256x256 multi-size)

  • icon.icns - macOS (512x512 multi-size)

  • icon.png - Linux (512x512)

See build/icons/README.md for conversion instructions.

Installer Graphics

Windows NSIS:

  • build/installerHeader.bmp - 150x57 pixels

  • build/installerSidebar.bmp - 164x314 pixels

macOS DMG:

  • build/icons/icon.icns - Volume icon

  • (Optional) Add build/dmg-background.png (540x380 pixels) and update electron-builder.yml with dmg.background: build/dmg-background.png

License

Add a LICENSE file to the root directory to display during Windows installation.

Troubleshooting

"App is damaged" on macOS

  • App is not signed or notarized

  • Run: xattr -cr /Applications/AeThex\ Desktop\ Terminal.app

Windows SmartScreen warning

  • App is not code-signed

  • Users can click "More info" > "Run anyway"

Linux AppImage won't run

Build fails with "icon not found"

  • Ensure build/icons/icon.ico exists for Windows builds

  • Ensure build/icons/icon.icns exists for macOS builds

Version Management

Update version in package.json before creating a release tag:

The version is used in:

  • Installer filename

  • Auto-update checks

  • About dialog

Last updated