Microsoft Store
Submit a finished MSIX to the Microsoft Store via the Partner Center API: create an Entra app, enter the Store ID and keep an eye on key expiry.
The Build Station submits Windows apps via the Microsoft Store submission API in Partner Center. It uploads a finished .msix, .msixbundle or .msixupload and creates a new submission with it.
Where the MSIX comes from
An MSIX is created by the Windows build (flutter build windows and dart run msix:create with store: true in pubspec.yaml), not on the Mac. So the Station doesn’t build it itself, it only submits it.
The usual route: Codemagic builds the MSIX on a Windows machine. In the project’s Codemagic tab, the artifact has an In den Store (to the store) button. It downloads the file into the collection folder and queues the upload. See Codemagic.
If an MSIX is part of a local build result, for example because a custom script reported it, you’ll see Jetzt hochladen (upload now) there, just like for other stores.
Step by step
Open Projekt bearbeiten › Upload › Store-Upload einrichten (Edit project › Upload › set up store upload) and then the Microsoft Store tab.
- Create an Entra application. In Partner Center, under Account settings › User management › Microsoft Entra applications, add an application with the Manager role.
- Get the IDs and key. Open the application, copy the tenant ID and client ID, and generate a key under “Add new key”. It’s only visible once and expires after two years at most.
- Look up the Store ID. You’ll find it for the app under Product management › Product identity: twelve characters, e.g.
9NBLGGH4R315. - First submission by hand. Complete the first submission once in full in Partner Center, including the age rating. The API always copies the last submission.
- Set it up. Switch on Direkt über die Partner-Center-API einreichen (submit directly via the Partner Center API) and enter Store-ID, Mandanten-ID (Tenant) (tenant ID), Client-ID and Schlüssel (key).
- Test the connection. The test signs in and reads the app. It doesn’t change anything.
The key is then stored in the macOS keychain. If one is already stored, leave the field empty to keep it.
Key expiry
Under Schlüssel gültig bis (TT.MM.JJJJ) (key valid until, DD.MM.YYYY), enter the expiry date Azure shows for the key. The Übersicht (Overview) then warns you in good time, before the key expires and the next upload fails. See Overview and work list.
You create a new key in the Azure portal under App registrations › Certificates & secrets and enter it in the setup.
How the submission works
The confirmation before the upload shows the API calls and points out that a new submission will be created and committed. Then:
- create the submission as a copy of the last one
- replace the previous packages with the new one
- upload the package as a ZIP
- commit
After that, Microsoft reviews and certifies the submission itself. You can see the status in Partner Center. The Partner Center button in the Hochladen (Upload) section takes you there.
If a submission is already open in Partner Center, the upload aborts instead of overwriting it. Complete or delete the open submission there first.
Common errors
| Message | Cause |
|---|---|
| „Microsoft lehnt die Anmeldung ab” (Microsoft rejects the sign-in) | Tenant ID, client ID or key is wrong, or the key has expired. |
| „In Partner Center ist schon eine Einreichung offen” (a submission is already open in Partner Center) | Complete or delete the open submission there first. |
Removing credentials
Aus Schlüsselbund entfernen (remove from keychain) in the setup deletes this project’s Partner Center key from the Mac.