Packaging your app for the Microsoft Store

Learn how to package your applications for the Microsoft Store

Introduction

This tutorial will guide you in packaging an application for publication in the Microsoft Store.

We assume that you have already set up your project to package and publish a Windows installer. If not then read the tutorial on packaging and publishing applications for Windows. Further, we assume that you are building your application with MSVC. The process for publishing applications built with MinGW in the Microsoft Store is completely different.

We continue using NeoChat as example.

Packaging the application for the Microsoft Store

To publish your application in the Microsoft Store is has to be packaged as APPX (or MSIX) package.

First we need to add the identifier of your application for the Microsoft Store to the project settings of the windowsbinariessigner in the ci-utilities repository. For NeoChat we add the following to windowsbinariessigner-projects.yaml:

network/neochat:
  applicationid: KDEe.V.NeoChat
  branches:
    release/24.02:

See the documentation of the windowsbinariessigner's project settings for details.

Next we configure the CI/CD pipeline of NeoChat in KDE's GitLab, so that it creates APPX packages additionally to the Window installer. We do this by adding a file called .craft.ini to the release/24.02 branch of NeoChat with the following content:

# SPDX-FileCopyrightText: None
# SPDX-License-Identifier: CC0-1.0

[BlueprintSettings]
kde/applications/neochat.packageAppx = True

The important line is kde/applications/neochat.packageAppx = True where kde/applications/neochat is the path of the Craft blueprint of NeoChat in the KDE Craft Blueprints repository.

When we now run a CI/CD pipeline for NeoChat then, after successful completion, the craft_windows_qt6_x86_64 job will have created two additional files which we can download by browsing the job artifacts (in the folder .kde-ci-packages/) or, more conveniently, from KDE's CDN. The file ending with .appxupload is that one you need to publish your application in the Microsoft Store. The second file ending with -sideload.appx can be used to install your application manually on Windows. You should use this sideload APPX to verify that your application works as expected before you upload it to the Microsoft Store.