Skip to main content
The top-level appx key contains set of options instructing electron-builder on how it should build AppX (Windows Store). All options are optional. All required for AppX configuration is inferred and computed automatically.

AppX Package Code Signing

  • If the AppX package is meant for enterprise or self-made distribution (manually install the app without using the Store for testing or for enterprise distribution), it must be signed.
  • If the AppX package is meant for Windows Store distribution, no need to sign the package with any certificate. The Windows Store will take care of signing it with a Microsoft certificate during the submission process.

AppX Assets

AppX assets need to be placed in the appx folder in the build directory. The assets should follow these naming conventions:
  • Logo: StoreLogo.png
  • Square150x150Logo: Square150x150Logo.png
  • Square44x44Logo: Square44x44Logo.png
  • Wide310x150Logo: Wide310x150Logo.png
  • Optional BadgeLogo: BadgeLogo.png
  • Optional Square310x310Logo: LargeTile.png
  • Optional Square71x71Logo: SmallTile.png
  • Optional SplashScreen: SplashScreen.png
All official AppX asset types are supported by the build process. These assets can include scaled assets by using target size and scale in the name. See Guidelines for tile and icon assets for more information. Default assets will be used for Logo, Square150x150Logo, Square44x44Logo and Wide310x150Logo if not provided. For assets marked Optional, these assets will not be listed in the manifest file if not provided.

How to Publish to the Windows App Store

  1. You’ll need a microsoft developer account (pay some small fee). Use your favourite search engine to find the registration form.
  2. Register you app for the desktop bridge here.
  3. Wait for MS to answer and further guide you.
  4. In the meantime, build and test your appx. It’s dead simple.
    "win": {
      "target": "appx",
    },
    
  5. The rest should be pretty straight forward — upload the appx to the store and wait for approval.

Building AppX on macOS

The only solution for now — using Parallels Desktop for Mac (Pro Edition is required). Create Windows 10 virtual machine and start it. It will be detected and used automatically to build AppX on your macOS machine. Nothing is required to setup on Windows. It allows you to not copy project to Windows and to not setup build environment on Windows.

Common Questions

If you use self-signed certificate, you need to add it to “Trusted People”. See Install the certificate.

Configuration

applicationId
string
The application id. Defaults to identityName. This string contains alpha-numeric fields separated by periods. Each field must begin with an ASCII alphabetic character.
backgroundColor
string
default:"#464646"
The background color of the app tile. See Visual Elements.
displayName
string
A friendly name that can be displayed to users. Corresponds to Properties.DisplayName. Defaults to the application product name.
identityName
string
The name. Corresponds to Identity.Name. Defaults to the application name.
publisher
string
The Windows Store publisher. Not used if AppX is build for testing. See AppX Package Code Signing.
publisherDisplayName
string
A friendly name for the publisher that can be displayed to users. Corresponds to Properties.PublisherDisplayName. Defaults to company name from the application metadata.
languages
string | string[]
The list of supported languages that will be listed in the Windows Store. The first entry (index 0) will be the default language. Defaults to en-US if omitted.
addAutoLaunchExtension
boolean
Whether to add auto launch extension. Defaults to true if electron-winstore-auto-launch in the dependencies.
customExtensionsPath
string
Relative path to custom extensions xml to be included in an appmanifest.xml.
capabilities
string[]
default:"['runFullTrust']"
The list of capabilities to be added to an appmanifest.xml. The runFullTrust capability is obligatory for electron apps and will be auto added if not specified here.Example: ['runFullTrust', 'privateNetworkClientServer', 'webcam']
customManifestPath
string
(Advanced Option) Relative path to custom appmanifest.xml (file name doesn’t matter, it’ll be renamed) located in build resources directory.Supports the following template macros:
  • ${publisher}
  • ${publisherDisplayName}
  • ${version}
  • ${applicationId}
  • ${identityName}
  • ${executable}
  • ${displayName}
  • ${description}
  • ${backgroundColor}
  • ${logo}
  • ${square150x150Logo}
  • ${square44x44Logo}
  • ${lockScreen}
  • ${defaultTile}
  • ${splashScreen}
  • ${arch}
  • ${resourceLanguages}
  • ${capabilities}
  • ${extensions}
  • ${minVersion}
  • ${maxVersionTested}
showNameOnTiles
boolean
default:"false"
Whether to overlay the app’s name on top of tile images on the Start screen.
electronUpdaterAware
boolean
default:"false"
Private option for electron-updater integration.
setBuildNumber
boolean
default:"false"
Whether to set build number. See issue #3875.
minVersion
string
Set the MinVersion field in the appx manifest.xml.Default: 10.0.16299.0 for arm64, 10.0.14316.0 for other architectures.
maxVersionTested
string
Set the MaxVersionTested field in the appx manifest.xml.Default: 10.0.16299.0 for arm64, 10.0.14316.0 for other architectures.
makeappxArgs
string[]
Private option for additional makeappx.exe arguments.

Inherited Properties

The following properties are inherited from Common Configuration:
  • artifactName
  • publish

Build docs developers (and LLMs) love