App package requirements
Follow these guidelines to prepare your app's packages for submission to the Microsoft Store.
Before you build your app's package for the Microsoft Store
Make sure to test your app with the Windows App Certification Kit. We also recommend that you test your app on different types of hardware. Note that until we certify your app and make it available from the Microsoft Store, it can only be installed and run on computers that have developer licenses.
Building the app package using Microsoft Visual Studio
If you're using Microsoft Visual Studio as your development environment, you already have built-in tools that make creating an app package a quick and easy process. For more info, see Packaging apps.
Be sure that all your filenames use ANSI.
When you create your package in Visual Studio, make sure you are signed in with the same account associated with your developer account. Some parts of the package manifest have specific details related to your account. This info is detected and added automatically. Without the additional information added to the manifest, you may encounter package upload failures.
When you build your app's UWP packages, Visual Studio can create an .msix or appx file, or a .msixupload or .appxupload file. For UWP apps, we recommend that you always upload the .msixupload or .appxupload file in the Packages page. For more info about packaging UWP apps for the Store, see Package a UWP app with Visual Studio.
Your app's packages don't have to be signed with a certificate rooted in a trusted certificate authority.
For UWP apps, Visual Studio can generate an app bundle (.msixbundle or .appxbundle) to reduce the size of the app that users download. This can be helpful if you've defined language-specific assets, a variety of image-scale assets, or resources that apply to specific versions of Microsoft DirectX.
One app bundle can contain your packages for all architectures.
Building the app package manually
If you don't use Visual Studio to create your package, you must create your package manifest manually.
Be sure to review the App package manifest documentation for complete manifest details and requirements. Your manifest must follow the package manifest schema in order to pass certification.
Your manifest must include some specific info about your account and your app. You can find this info by looking at View app identity details in the App management section of your app's overview page in the dashboard.
Values in the manifest are case-sensitive. Spaces and other punctuation must also match. Enter the values carefully and review them to ensure that they are correct.
App bundles (.msixbundle or .appxbundle) use a different manifest. Review the Bundle manifest documentation for the details and requirements for app bundle manifests. Note that in a .msixbundle or .appxbundle, the manifest of each included package must use the same elements and attributes, except for the ProcessorArchitecture attribute of the Identity element.
Be sure to run the Windows App Certification Kit before you submit your packages. This can you help determine if your manifest has any problems that might cause certification or submission failures.
Package format requirements
Your app’s packages must comply with these requirements.
|App package property||Requirement|
|Package size||.msixbundle or .appxbundle: 25 GB maximum per bundle
.msix or .appx packages targeting Windows 10: 25 GB maximum per package
.appx packages targeting Windows 8.1: 8 GB maximum per package
.appx packages targeting Windows 8: 2 GB maximum per package
.appx packages targeting Windows Phone 8.1: 4 GB maximum per package
.xap packages: 1 GB maximum per package
|Block map hashes||SHA2-256 algorithm|
As of October 31, 2018, newly-created products cannot include packages targeting Windows 8.x/Windows Phone 8.x or earlier. For more info, see this blog post.
For UWP apps, all packages must target a version of Windows 10 supported by the Store. The versions your package supports must be indicated in the MinVersion and MaxVersionTested attributes of the TargetDeviceFamily element of the app manifest.
The versions currently supported range from:
- Minimum: 10.0.10240.0
- Maximum: 10.0.17763.1
StoreManifest XML file
StoreManifest.xml is an optional configuration file that may be included in app packages. Its purpose is to enable features, such as declaring your app as a Microsoft Store device app or declaring requirements that a package depends on to be applicable to a device, that the package manifest does not cover. If used, StoreManifest.xml is submitted with the app package and must be in the root folder of your app's main project. For more info, see StoreManifest schema.