Development Builds
For development, use debug builds which compile faster:- Linux:
build/linux/x64/debug/bundle/icarus - Windows:
build/windows/x64/runner/Debug/icarus.exe - macOS:
build/macos/Build/Products/Debug/icarus.app
Production Builds
Linux
Build a release bundle:build/linux/x64/release/bundle/
The bundle directory contains:
icarus- Executable binarylib/- Shared librariesdata/- Assets and resources
Distribute the entire
bundle directory, not just the executable.Windows
For Windows, you can build either a standalone executable or an MSIX package.Standalone Executable
build/windows/x64/runner/Release/
MSIX Package (Microsoft Store)
Icarus uses themsix package for Microsoft Store distribution.
macOS
Build for macOS:build/macos/Build/Products/Release/icarus.app
For distribution, create a DMG:
Version Management
Icarus includes a PowerShell script for automated version bumping on Windows.Bump Version Script
File:scripts/bump_version.ps1
The script updates versions across pubspec.yaml and lib/const/settings.dart, then builds the MSIX.
- Patch
- Minor
- Major
Increment patch version (e.g., 3.1.0 → 3.1.1):
- Reads current version from
pubspec.yaml - Increments based on bump type
- Updates
versionfield inpubspec.yaml - Updates
msix_versionfield inpubspec.yaml - Updates
versionNumberandversionNameinlib/const/settings.dart - Runs
dart run msix:create - Opens the output folder
Manual Version Updates
If you need to update versions manually:-
pubspec.yaml (line 6):
-
pubspec.yaml (line 62, MSIX only):
-
lib/const/settings.dart:
Alternative Build Script
There’s also a Dart-based build script atbuild_script.dart:1 for cross-platform use:
Code Signing
Windows
For Microsoft Store submissions, the MSIX must be signed with a valid certificate. The publisher certificate is configured inpubspec.yaml:60.
macOS
For App Store or notarized distribution:Build Optimization
Release Flags
For smaller binaries, use:--obfuscate: Obfuscates Dart code--split-debug-info: Splits debug symbols for crash reporting
Tree Shaking
Flutter automatically removes unused code in release builds.File Associations
Icarus registers the.ica file extension:
- Windows: Configured in
pubspec.yaml:63for MSIX - Linux/macOS: Requires manual MIME type registration
Troubleshooting
MSIX Build Fails
Ensure the logo path inpubspec.yaml:61 points to a valid .ico file: