Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Packaging reference

The Proton CLI packages a project into a distributable containing its executable, frontend assets, CEF runtime, matching helper and declared resources. A backend executable alone is not a complete distribution. Packaging targets the host platform.

Field types and defaults are defined in Configuration.

Platform overrides

Each platform object accepts formats, resources and sign. Windows additionally accepts nsis_install_mode; macOS accepts minimum_system_version. A platform format list replaces the shared list. Platform resources are combined with shared resources. Path values use the project configuration directory as their base.

PlatformFormatsDefault
macOS Apple Siliconapp, zip, dmgapp, zip
Windows x64app, zip, nsisapp, zip
Linux x64appimageappimage

Icon and tool prerequisites

ArtifactIcon and tooling
macOS app / zipICNS for the application icon; native Apple tooling for builds and signing
macOS dmgUses system hdiutil to create an image from the app
Windows app / zipWindows SDK rc.exe embeds ICO into the EXE; PNG is not automatically converted
Windows nsisAlso requires NSIS makensis
Linux appimageRequires a PNG icon and executable appimagetool on PATH

The default scaffold does not provide icons. On Linux, missing PNG validation fails before invoking AppImage tooling. See the Todo packaging steps for preparation. Supply the platform's icon format rather than expecting Windows to convert icons intended for other platforms.

NSIS installation mode

ValueBehavior
currentUserDefault; current user, no administrator installation required
perMachineAll users, elevation required
bothInstaller offers a scope choice; may prompt for elevation even for current-user installation

Changing the mode is not an installation-scope migration. Updates to an existing machine-wide installation should retain its intended scope.

Minimum macOS version

minimum_system_version only writes macOS LSMinimumSystemVersion metadata. It does not make a binary built against a newer SDK/CEF compatible with older systems. Validate the complete artifact on the minimum supported OS; compilation alone is insufficient.

Signing and notarization

--release controls build mode and does not imply signing. On macOS, --sign requests signing; --notarize requests notarization, stapling and validation using configured credentials. Identity and credential environment variables are listed in the CLI reference.

An unsigned or locally signed artifact does not establish a trusted publisher identity. Credentials are deployment configuration, not application source.

Runtime resource behavior

Packaged frontend files load without the development server. Backend resource paths resolve through resource_dir(). Installed resources may be read-only; persistent application data belongs outside them.

--dry-run validates and displays the packaging plan. It does not prove that packaging, signing or the packaged runtime works. The Todo tutorial includes the application build and package exercise.