Follow these guidelines to prepare your app's packages for submission to the Windows Store.
Before you build your app's package for the Windows Store
-
Review the app submission checklist.
This checklist and others provide a fill-in-the-blank form for the info that you need to provide when you prepare your app.
-
Be sure that you have tested your app with the Windows App Certification Kit.
The Windows App Certification Kit tests the basic functions of your app and checks for compliance with the technical requirements of Windows Store apps.
-
Take some screen shots that show off the key features of your app.
You want to tell people about your app and impress them with how cool it is. Remember, a picture is worth a thousand words!
-
Have other developers test your app.
Until we certify your app and make it available from the Windows Store, only other developers can run it. Apps that we haven't certified can be installed and run only on computers that have developer licenses. Testing your app in the simulator is fine during development, but it's always a good idea to test your app on different types of hardware.
Follow the steps in Sharing an app package locally to build an app package that you can share with other developers.
Try to test your app on as many different form factors as possible, such as tablets, notebooks, and desktop computers.
-
If your app is a game...
Find out whether your game needs to be rated. Before you can distribute your game in some countries/regions, you must have it rated by a rating agency.
For more info about age ratings, see Pick a suitable Windows Store age rating.
-
Will you need a privacy statement or additional license terms?
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.
Important By default, many projects in Microsoft Visual Studio Express 2012 for Windows 8 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.
Building the app package using Microsoft Visual Studio 2012
If you're using Microsoft Visual Studio 2012 as your development environment, you already have built-in tools to make creating an app package a quick and easy process. Check out our topic, 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 your app has a problem. You can use the .cab file to debug programming errors in your app. For more info about downloading .cab files, see How to review your app's 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 Express 2012 for Windows 8 to create your package, you must create your package manifest manually to make sure that it contains the correct data as described in the next table.
Note These values are case sensitive. Spaces and other punctuation must also match. Take care to enter the values correctly if you edit them manually.
| 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: 3/19/2013