In the last article, I talked about the specific requirements and recommendations regarding Windows Phone 7 iconography, including images for your application's tiles, the Marketplace, and application bar buttons. This time, I want to take it a step further and sum up all of the most important key points of the application certification requirements in the form of a cheat sheet.
The full requirements can be found online on MSDN. The following will provide you short summaries of the technical and submission requirements as well as the application policies. The order is not necessarily the same as in the original documentation, to structure the information a bit more for a developer's view. Please note that this is not a normal article. It is not intended to be read from top to bottom – instead it is meant as a reference for quick look-ups where you don't want to click through/search the complete requirements online. You can download a handy single-page PDF/XPS version at the end of the article which for example can be printed out and pinned to a wall in your working space, so you have everything at hand with a quick look.
Make sure your application also complies with the Content Policies and the additional requirements for special types of applications (if applicable), which are not covered by this article.
Applications in General
Some general application policies are listed in the following:
- Must include the name, version and technical support contact information (5.6)
- Must not use in-app purchases; app must be ready to use after acquisition (2.1)
- Must not sell or promote mobile voice plans (2.2)
- Must provide information in the description when the download of additional large data packages is required (2.5)
- Must comply with the Microsoft Advertising Creative Acceptance Policy Guide for all in-app advertising (2.4)
- Must verify age > 13 for user accounts in person-to-person communication feature scenarios (2.6)
- Must use "opt-in" and provide "opt-out" later to share a user's personal information (2.8)
- Must have purpose other than merely launching a webpage (2.10)
- Must ensure all content is visible and legible with all phone themes (dark/light) (5.5.2)
XAP Package (4.1.1)
The requirements for the packaging of your application have information on the following topics (4.1.1):
Maximum size |
225 MB
|
Required content |
- WMAppManifest.xml
- AppManifest.xml
- Assembly files specified in AppManifest.xml
- Small and large app tile images
|
Required for WMAppManifest.xml |
- The title element must not be empty
- The title element must be the same as the specified title during submission
|
Please note that these requirements partly have changed over time, for example the former size limit was 400 MB.
Code Validation
To succeed code validation, an application must adhere to the following rules:
- Must not use P/Invoke (4.2.2)
- Must not use COM interop (4.2.2)
- Must be built in release mode; must not contain debugging symbols/output (4.2.3)
- Must not redistribute phone assemblies (4.2.4)
- Must not use XNA Game or Graphics assembly when using System.Windows.Controls (4.2.5)
Phone Capabilities (4.3)
The phone capabilities an application makes use of are contained in the WMAppManifest.xml and automatically determined during submission.
- The application must run with the automatically detected capabilities (4.3)
- Use the Capability Detection Tool to determine the capabilities for your application and test AND/OR
- Use the "Mango" Marketplace Test Kit's Capability Validation for this
Languages
Every application must be localized to at least one of the following supported languages (4.4):
- English
- French
- Italian
- German
- Spanish
In addition, the following requirements are in place:
- Must set a neutral language (4.4)
- Must localize the application description and UI texts to each supported language (5.5.1)
Icons/Images (4.5, 4.6, 4.7)
For a more sophisticated description of the Windows Phone 7 iconography that explains the following information in more detail, please read my separate article on the topic.
Image |
Required |
Format |
Transparency allowed? |
Size |
Small app tile image |
Yes |
PNG |
Yes |
62x62 |
Large app tile image |
Yes |
PNG |
Yes |
173x173 |
Small Marketplace mobile tile image |
Yes |
PNG |
No |
99x99 |
Large Marketplace mobile tile image
|
Yes |
PNG |
No |
173x173 |
Large Marketplace PC tile image |
Yes |
PNG |
No |
200x200 |
Background art |
No |
PNG |
No |
1000x800 |
Application screenshot |
At least 1, max. 8 |
PNG |
No |
480x800 |
Application bar icon |
No |
PNG |
Yes |
48x48 (Content 26x26) |
The app tiles must be representative of the application (4.7).
Time Limits
The following deliberate time limits are in place on the platform:
- Must render first screen within 5 seconds (splash screen sufficient) (5.2.1 – 5.2.3)
- Must be responsive to user input within 20 seconds (5.2.1 – 5.2.3)
- Must show progress bar/busy indicator if unresponsive for > 3 seconds (5.1.3)
The Back Button
The use of the back button must follow very specific requirements:
- Must navigate to (any) previous page OR (5.2.4, 5.2.4.1)
- Must close dialog/context menu and stay on page (5.2.4.3)
- Must close application if used on the first screen (5.2.4.2)
- For games: during gameplay, can open dialog/pause menu (5.2.4.4)
The back button must not be used for any other functionality than what is listed above.
Reliability, Security and More
The following requirements are in place regarding general reliability, security and issues regarding the phone's built-in functionality:
- Must run on any Windows Phone device (5.1.1)
- Must not close unexpectedly due to unhandled exceptions or other reasons (5.1.2, 5.3.3)
- Must provide user-friendly messages when handling errors (5.1.2)
- Must not prevent the user from using any phone features (calls, SMS/MMS) (5.3.1)
- Must continue to work when interrupted by phone features (calls, SMS/MMS) (5.3.2)
- Must not contain viruses, malware or malicious features (5.4.1)
- Must not run security critical code or try to work around the sandbox mechanism (5.4.2, 5.4.3)
- Must not jeopardize security of the device or Marketplace (2.3)
- Must not consume more than 90 MB of memory when the device memory is 256 MB or less (5.2.5)
- Must not use the Trial API in a tight loop (e.g. game loop) (5.2.6)
Location Aware Applications
For apps that use the location of a user's device, the following restrictions and requirements apply:
- Must use the Microsoft Location Service API (2.7.1)
- Must use location data only for features of the application itself (no location awareness just for ads!) (2.7.7)
- Must inform users about the use and disclosure of location data (2.7.2)
- Must provide a setting to turn off the use of location data (2.7.3)
- Must use "opt-in" and provide "opt-out" later if location data is made available to 3rd parties (2.7.4)
- Must protect obtained location data against unauthorized access (2.7.8)
- Must stay responsive if the location service is not available (6.1)
- Must not tamper with the systems toasts and prompts related to the Location Service API (2.7.5)
- Must not tamper with the phone feature of disabling location services (2.7.6, 6.1)
Push Notification Service
For the usage of the Push Notification Service, you need to comply with the following requirements:
- Must describe what push notifications are provided (2.9.1)
- Must use "opt-in" and provide "opt-out" later for receiving push notifications (2.9.1)
- Must not use excessive network capacity or bandwidth or otherwise unduly burden the phone or services (2.9.2)
- Must not use push notifications for matters of life or death or other mission critical, real-time data (2.9.3)
- Must provide possibility to independently turn off toast notifications (6.2.1)
- Must ask for explicit permission to use toast notifications (6.2.2)
Downloads
Here you can find single-page XPS and PDF versions of the above which you can use for print-out.
Download this cheat sheet: PDF (306 kb) or XPS (337 kb)