App package requirements
Follow these guidelines to prepare your app's packages for submission to the Windows Store.
Note Be sure and review the Before you submit section and the App submission checklist to make sure you have everything taken care of before you submit the package.
Important If your app collects personal info or uses software that is provided by others, you must provide a privacy statement or additional license terms with your app. By default, many projects in Microsoft Visual Studio declare the use of the internetClient capability. Using this capability requires that you also provide a privacy policy. You can remove this capability from your project if you don't need it.
Before you build your app's package for the Windows Store
You should test your app with the Windows App Certification Kit to check for compliance with the technical requirements of Windows Store apps. We also recommending testing your app on different types of hardware. Note that until we certify your app and make it available from the Windows Store, it can be installed and run only on computers that have developer licenses.
Building the app package using Visual Studio
If you're using Visual Studio as your development environment, you already have built-in tools that make creating an app package a quick and easy process. See Creating an app package to learn how. Also, be sure that all your filenames use ANSI.
Tip When you build your app's packages, you have the option of creating an .appx file or an .appxupload file. Both of these files can be uploaded on the Packages page. If you upload an .appxupload file, the Store can create a .cab file if customers experience failures (crashes, unresponsive events, and JavaScript exceptions) while running your app. You can use this .cab file to debug programming errors in your app. For more info about downloading these .cab files, see Reviewing app quality.
Keep in mind that you app's packages don't have to be signed with a certificate rooted in a trusted certificate authority.
Building the app package manually
If you don't use Visual Studio to create your package, you must create your package manifest manually to make sure that it contains the correct data, as described below.
Note These values are case-sensitive. Spaces and other punctuation must also match. Take care to enter the values correctly and review them to ensure that they are correct.
| App manifest element | Required contents |
|---|---|
| Package/Capabilities |
Your app must declare only the minimum list of capabilities that your app needs for its core functionality. Your app can't declare capabilities that serve only advertising. For more info, see Windows app capabilities. |
| Package/Identity/ @Name |
The Package name value from your Windows Store developer account. Your apps must use a package identity name that the Windows Store assigned you when you reserved the name of your app. This value is not critical until you submit your app to the Windows Store. |
| Package/Identity/ @Publisher |
The Publisher ID value from your Windows Store developer account. This value is not critical until you submit your app to the Windows Store. |
| Package/Identity/ @ResourceId |
Must be empty or undefined. |
| Package/Identity/ @Version |
When the app you are submitting is an upgrade to an app that is already in the Windows Store catalog, this value must be greater than the corresponding value in the version of the app that is already in the Store. This value is not critical until you submit your app to the Windows Store. |
| Package/Properties/Logo |
The URI of a PNG, JPG, or JPEG image that is 50 × 50 pixels in size. For more info, see Store logo. |
| Package/Properties/DisplayName |
The App name that you reserved for this app. This value is not critical until you submit your app to the Windows Store. For more info, see Naming your app. |
| Package/Properties/Framework |
Must be undefined or have a value of false if defined. You can't submit framework packages to the Store. |
| Package/Properties/PublisherDisplayName |
The Publisher display name value from your Windows Store developer account. This value is not critical until you submit your app to the Windows Store. |
| Package/Resources |
Must contain a Resource element for each language that the app supports. For a list of the languages that an app must support to be listed in the Windows Store, see Choosing your languages. The Language attribute is not critical until you submit your app to the Windows Store. |
| Package/Applications/Application/VisualElements/ @Logo |
The URI of a PNG, JPG, or JPEG image that is 150 × 150 pixels in size. For more info, see Logo. |
| Package/Applications/Application/VisualElements/ @SmallLogo |
The URI of a PNG, JPG, or JPEG image that is 30 × 30 pixels in size. For more info, see Small logo. |
| Package/Applications/Application/VisualElements/ DefaultTile/ @WideLogo |
The URI of a PNG, JPG, or JPEG image that is 310 × 150 pixels in size. This attribute is optional. For more info see Wide logo. |
| Package/Applications/Application/VisualElements/ @BackgroundColor |
Must contain a valid color value, and the color defined by this value must provide sufficient contrast with the color of the @ForegroundText. The contrast value is computed by the ratio of the relative luminance of the foreground text color and the background color. Light text has a color value of 0xFFFFFF and dark text has a color value of 0x000000. |
| Package/Applications/Application/VisualElements/ @ForegroundText |
Must contain a valid color value and the color defined by this value must provide sufficient contrast with the color of the @BackgroundColor. The contrast value is computed by the ratio of the relative luminance of the foreground text color and the background color. Light text has a color value of 0xFFFFFF and dark text has a color value of 0x000000. |
If your app has more than one package—that is, if it runs on more than one processor type—these app manifest elements must be the same in each package:
Package format requirements
Your app’s packages must comply with these requirements.
| App package property | Requirement |
|---|---|
| Package size | 2 gigabytes maximum per package |
| Block map hashes | SHA2-256 algorithm |
Build date: 6/20/2013
