Microsoft Store Testing
The Windows equivalent of Google Play internal testing is Microsoft Store tester distribution through Partner Center. Use two Store mechanisms:- Private audience for the first pre-public tester release. This keeps the Store listing hidden from everyone except a known user group and is the correct first Windows equivalent of Google Play internal testing.
- Package flights for ongoing internal builds after the first Store submission exists. Package flights are for post-publish internal package updates.
- Beta testing and targeted distribution
- Package flights
- Create known user groups
- Manage Microsoft Entra applications in Partner Center
- Publish app updates to Microsoft Store with GitHub Actions
- Microsoft Store Developer CLI commands
Target channel
Create a Partner Center known user group named:Current status
The first private-audience submission forSapientic Everything went live on 2026-05-24. As of 2026-05-25, a 1.0.32.0 update package has been submitted for certification with the startup crash fix and Store-compatible package versioning.
- Product ID:
9NRZB5HT5XSX - Live submission ID:
1152921505701075594 - Update submission ID:
1152921505701096903 - Live package:
Everything.Windows_1.0.0.0_x64_bundle.msixupload - Submitted update package:
Everything.Windows.msixupload/v1.0.32.0 - Private audience group:
Sapientic Everything Windows Internal - GitHub variable
WINDOWS_STORE_PRIVATE_AUDIENCE_READY:true
Sapientic Everything unless the exact name Everything is successfully reserved for this product. Partner Center rejected a package with Package/Properties/DisplayName set to Everything because that name is not available. CI/API Store publishing still needs Partner Center API access for the configured Microsoft Entra application before msstore can submit future packages automatically.
As of 2026-05-25, the Windows developer account that owns product 9NRZB5HT5XSX is the personal Microsoft account avrahamiyaniv@gmail.com. Treat that account as the root administrative owner for Microsoft Store. The configured Store CLI credentials still authenticate but report no managed Store products because the current Sapientic Entra tenant is not associated with that developer account. Attempting to associate that tenant from Partner Center returned Microsoft Unauthorized with correlation ID 117684fd-8ab1-4529-86ba-e4c67cc5c7c4. The next Microsoft-side automation step is to create or associate an owner-controlled Entra tenant from the avrahamiyaniv@gmail.com Partner Center context, then grant the Sapientic Everything Microsoft Store Publisher Entra application access under User management > Microsoft Entra applications.
Account ownership policy
Useavrahamiyaniv@gmail.com wherever Microsoft requires a human owner, root administrator, billing/verification owner, or Store developer account sign-in for this Windows app. This keeps critical account recovery and Partner Center ownership under one known owner identity.
Keep customer-facing surfaces on Sapientic identities:
- Store product name and installed display name:
Sapientic Everything - Publisher display name:
Sapientic - Support and privacy contact:
support@sapientic.co - Public marketing and documentation brand:
Everything/Sapientic
avrahamiyaniv@gmail.com Partner Center owner context, not from an unrelated customer-facing Sapientic mailbox.
Store listing assets
The first desktop Store screenshot is checked in at:Repository behavior
Every push tomain that touches the Windows app runs .github/workflows/windows-production.yml.
The workflow now:
- Sets the MSIX package identity from GitHub variables.
- Sets a monotonically increasing MSIX version.
- Builds an unsigned App Installer package candidate.
- Builds the Microsoft Store
.msixuploadpackage. - Uploads the unsigned package candidates as GitHub Actions artifacts.
- Signs the App Installer package in a separate no-checkout job when
WINDOWS_PFX_BASE64andWINDOWS_PFX_PASSWORDare configured. - Publishes
Everything.Windows.msixuploadfrom a separate publish-only job only whenWINDOWS_STORE_API_PUBLISH_ENABLED=true. IfWINDOWS_STORE_FLIGHT_IDis set, it publishes to that package flight. If no flight exists yet, it publishes only whenWINDOWS_STORE_PRIVATE_AUDIENCE_READY=true; otherwise it builds the Store artifact and refuses to submit.
GitHub configuration
Add these repository secrets for Microsoft Store publishing:WINDOWS_STORE_API_PUBLISH_ENABLED defaults to false. Keep it false until npm run windows:store-status reports Microsoft Store API access and product access as OK; the workflow still builds and uploads the .msixupload artifact while API publishing is disabled.
WINDOWS_STORE_ROLLOUT_PERCENTAGE defaults to 100.
WINDOWS_STORE_OWNER_ACCOUNT defaults to avrahamiyaniv@gmail.com in the readiness script and documents who owns the Partner Center developer account.
WINDOWS_STORE_PRIVATE_AUDIENCE_READY must stay false until the current Partner Center submission is configured as Private audience with the internal tester group selected. It is currently true for the submitted private-audience Windows release.
WINDOWS_PACKAGE_IDENTITY and WINDOWS_PACKAGE_PUBLISHER are assigned by Partner Center. For the current reserved product:
apps/windows/Package.appxmanifest on the runner before packaging.
The existing GitHub App Installer feed still uses:
Partner Center setup
- Sign in to Partner Center with the Store owner account
avrahamiyaniv@gmail.com. - Create or associate a Microsoft Entra tenant from that owner context. This tenant is for Microsoft identity, Partner Center administration, and CI automation only; public Sapientic email can remain on Google Workspace.
- Create the first admin work account in that tenant as an owner-controlled Microsoft identity. It does not need to be a customer-facing Sapientic email address.
- Enroll the owner account in the Windows program from Partner Center > Account settings > Programs > Windows > Get started, or from
storedeveloper.microsoft.com. - Choose Company account for Sapientic. The current Microsoft onboarding page shows company registration as free.
- Complete Business details with either a 9-digit D-U-N-S number or one accepted business document:
- Articles of incorporation or company formation documents.
- Franchise agreement or agency appointment letter.
- Government-issued business license or registration certificate.
- Official government registry record with business details.
- Stock exchange filings or official tax filing records.
- Complete Contact details and Account verification. Use Sapientic contact emails for customer-facing support/privacy fields where Partner Center exposes them.
- Reserve the Microsoft Store app name
Sapientic Everything. The product can still be branded as Everything in-app and on the website. - Copy the Product ID from Partner Center into
WINDOWS_STORE_PRODUCT_ID. The current reserved product ID is9NRZB5HT5XSX. - Copy the Package/Identity/Name and Package/Identity/Publisher values into
WINDOWS_PACKAGE_IDENTITYandWINDOWS_PACKAGE_PUBLISHER. The current values areSapientic.SapienticEverythingandCN=AE2A8521-D497-42C4-A51E-12D95B9FDC39. - Create the known user group
Sapientic Everything Windows Internal. - Upload the desktop screenshot from
apps/windows/Store/Screenshots. - Configure the current submission as Private audience and select
Sapientic Everything Windows Internal. - Run
npm run windows:store-setupafter Azure CLI is logged into the owner-associated Entra tenant. The script creates/reuses the Microsoft Entra app registration, creates a GitHub Actions client secret, configuresmsstore, and writes the GitHub repository secrets and variables. - In Partner Center, add the Microsoft Entra application
Sapientic Everything Microsoft Store Publisherunder Account settings > User management > Microsoft Entra applications, and give it permissions to manage Store submissions. - Run
npm run windows:store-statusand confirmMicrosoft Store API accessandMicrosoft Store product accessare both OK. - Set
WINDOWS_STORE_PRIVATE_AUDIENCE_READY=true. - After
npm run windows:store-statusconfirms Store API access, setWINDOWS_STORE_API_PUBLISH_ENABLED=true. - Push a Windows change to
mainor run the Windows production workflow. The workflow publishes the generated.msixuploadwithmsstore publish. - After the first private-audience submission is published, create the
Internalpackage flight and copy its flight ID intoWINDOWS_STORE_FLIGHT_ID. - Later pushes publish to the internal package flight automatically.
Package.appxmanifest; update the two package identity variables and rerun the workflow.
If Partner Center Home only shows the My access workspace, the Windows developer program enrollment is not complete for the signed-in account yet. Finish the Store Developer onboarding before trying to reserve or manage Store products.
If npm run windows:store-status reports Microsoft Store API access as missing with an unauthorized account error after enrollment is complete, the Microsoft Entra app registration exists in Azure but has not been added to the Partner Center account. Add it from Partner Center user management before relying on CI/API Store submissions.
Local package and Store publish
Build the Store upload package locally:gh, and configures the local Microsoft Store Developer CLI.
Check the current automation readiness without printing any secrets:
.msixupload to Store when msstore and the required environment variables are available:
WINDOWS_STORE_FLIGHT_ID is set, windows:store-publish publishes to that flight. Without it, the command publishes only when WINDOWS_STORE_PRIVATE_AUDIENCE_READY=true; otherwise it refuses to submit.
For a draft-only Store submission, run the script directly: