51 out of 54 rated this helpful - Rate this topic

Technical certification requirements for Windows Phone

April 14, 2014

These requirements apply equally to an app that implements game functionality, commonly referred to as a game.

Requirement

Requirement Text

Test Steps

5.1.1 - Multiple devices support

The app must run on Windows Phone devices that are compatible with the hardware and screen resolution requirements specified in the package.

By default, the app is considered compatible with lower-memory devices. However, you can opt out of supporting lower-memory devices. For more information about lower-memory devices, see Developing apps for lower-memory phones for Windows Phone 8.

For more information about multiple devices support, see App capabilities and hardware requirements for Windows Phone 8 and Multi-resolution apps for Windows Phone 8.

  1. Install your app on two or more Windows Phone devices that are compatible with the app hardware and screen resolution requirements.

  2. Verify that the app can install and uninstall without error.

  3. After testing the above, ensure your app is installed, and launch it.

  4. Comprehensively test app functionality and features to verify that there are no device-specific issues.

  5. Verify that the app does not cause the device to stop responding or crash.

5.1.2 - App closure

The app must handle exceptions raised by the any of the managed or native system API and not close unexpectedly. During the certification process, the app is monitored for unexpected closure. An app that closes unexpectedly fails certification. The app must continue to run and remain responsive to user input after the exception is handled.

  1. Launch your app.

  2. Navigate throughout the app, and then close the app.

  3. Verify that unexpected behavior does not occur during the closing process.

  4. Verify that the app remains responsive to user input and user interaction following an app error.

5.1.3 - App responsiveness

If an app performs an operation that causes the device to appear to be unresponsive for more than three seconds, such as downloading data over a network connection or transitioning between a screen or page, the app must display a visual progress or busy indicator.

  1. Launch your app.

  2. Thoroughly test the app features and functionality.

  3. While testing the app, verify that the app does not become unresponsive for more than three seconds.

  4. Verify that a progress indicator is displayed if the app performs an operation that causes the device to appear to be unresponsive for more than three seconds.

  5. If a progress indicator is displayed, verify that the app provides the user with an option to cancel the operation being performed.

5.1.4 - App testability

The app must be testable when it is submitted to Windows Phone Store. If it is not possible to test your app for any reason, including, but not limited to, the items below, your app may fail this requirement.

  • If your app requires credentials, you must include them in the Test notes or instructions field when submitting your app on the Windows Phone Dev Center. The credentials must be valid.

    Examples of credentials include:

    • Login credentials. For example, if your app requires a user name and password to access part of the app.

    • Testing credentials. For example, if your app allows a user to add to a gift card balance, you must include both login credentials and a gift card number that can be tested.

  • If your app accesses a web service, the web service must be functional and your app must run properly.

  • If your app interacts with third-party hardware, for example a media streaming device, you must file a technical exception. For more information on how to file a technical exception, see the Technical Exception Request form.

  • Your app must not require that it is run on a single, specific cellular network.

  • Your app must launch.

    TipTip:
    Your app may close unexpectedly if it tries to access an API that it does not have the security capability to use. For more information about how to work with security capabilities, see How to determine app capabilities for Windows Phone 8.

Requirement

Requirement Text

Test Steps

5.2.1 - Launch time

  • The app must render the first screen or a splash screen within 5 seconds after launch.

  • Within 20 seconds after launch, the app must be responsive to user input.

  1. Launch your app.

  2. Verify that the app renders the first screen within 5 seconds of launching.

  3. Verify that the app is responsive to user input within 20 seconds of launching.

5.2.2 - App responsiveness after being closed

A Windows Phone app is closed and terminated by the OS when the user navigates away from the app. When an app is started after being closed, its launch time must meet the requirements in Section 5.2.1 - Launch Time.

  1. Launch your app.

  2. Close the app using the Back button, or by selecting the Exit function from the app menu.

  3. Launch your app again.

  4. Verify that the app launches normally within 5 seconds, and is responsive within 20 seconds of launching.

5.2.3 - App responsiveness after being deactivated

A Windows Phone app is deactivated when the user presses the Start button or if the device timeout causes the lock screen to engage. A Windows Phone app is also deactivated with it invokes a Launcher or Chooser API. For more information about Launchers and Choosers, see Launchers and Choosers for Windows Phone 8.

A Windows Phone OS 7.0 app is tombstoned (terminated) when it is deactivated. A Windows Phone OS 7.1, Windows Phone OS 8.0, or Windows Phone 8.1 app becomes Dormant when it is deactivated, but it can be terminated by the system when resource use policy causes it to tombstone.

When an app is activated after termination, it must meet the requirements in Section 5.2.1 - Launch time.

For more information and best practices, see App activation and deactivation for Windows Phone 8.

  1. Launch your app.

  2. Deactivate the app using the Start button.

  3. Launch your app again.

  4. Verify that the app launches normally within 5 seconds, and is responsive within 20 seconds of launching.

  5. If your app includes pause functionality, pause the app.

  6. Launch your app again.

  7. Verify that the app launches normally within 5 seconds, and is responsive within 20 seconds of launching.

5.2.4 - Use of Back button

To maintain a consistent user experience, the Back button must only be used for backwards navigation in the app. The following four requirements relate to use of the Back button.

5.2.4.1 - Back button: previous pages

Pressing the Back button must return the app to the previous page or return to any previous page within the back stack.

  1. Launch your app.

  2. Navigate through the app.

  3. Press the Back button.

  4. Verify that the app closes the screen that is in focus and returns you to a previous page within the back stack.

5.2.4.2 - Back button: first screen

Pressing the Back button from the first screen of an app must close the app.

  1. Launch your app.

  2. Press the Back button.

  3. Verify that either the app closes without error, or allows the user to confirm closing the app with a menu or dialog.

5.2.4.3 - Back button: context menus and dialogs

If the current page displays a context menu or a dialog, the pressing of the Back button must close the menu or dialog and return the user to the screen where the context menu or dialog box was opened.

  1. Launch your app.

  2. Navigate through the app.

  3. Display a context menu or dialog.

  4. Tap the Back button.

  5. Verify that the context menu or dialog closes and returns you to the screen where the context menu or dialog was opened.

5.2.4.4 - Back button: games

For games, when the Back button is pressed during gameplay, the game can choose to present a pause context menu or dialog, or it can navigate the user to the prior menu screen.

  1. Launch your game.

  2. Begin playing the game.

  3. Tap the Back button.

  4. Verify that the game pauses.

5.2.5 - Memory consumption

An app must not exceed 90 MB of RAM usage, except on devices that have more than 256 MB of memory.

On Windows Phone OS 7.0, Windows Phone OS 7.1, and Windows Phone OS 8.0, you can use the DeviceExtendedProperties and DeviceStatus classes to query the amount of memory that your app is using, and to adjust behavior based upon the memory available on the device.

On Windows Phone 8.1, use the MemoryManager class.

For more information on memory requirements for Windows Phone, see App memory limits for Windows Phone 8.

5.2.6 - Trial apps

An app must not invoke either of the Trial APIs in a tight loop. For example, a game app must not invoke either of the Trial APIs while in a game loop. The API should be called infrequently and the value returned should be cached. For information about best practices for creating trial apps, see Creating trial apps for Windows Phone 8.

  1. Launch the trial version of your app.

  2. Launch the full version of your app.

  3. Compare the performance of the trial and full versions of your app.

  4. Verify that the performance of the trial version of your app meets the performance requirements in section 5.2.1 through 5.2.5.

Requirement

Requirement Text

Test Steps

5.3.1 - Phone calls

The app must not delay or prevent the user from initiating a phone call, answering an incoming phone call, or ending a phone call.

  1. Ensure that the phone has a valid cellular connection.

  2. Launch your app.

  3. Receive an incoming phone call.

  4. Verify that the quality of the phone call is not negatively impacted by sounds or vibrations in your app.

  5. End the phone call.

  6. Verify that the app returns to the foreground and resumes.

  7. Close the app by tapping the Start button.

  8. Verify that you can successfully place a phone call.

5.3.2 - SMS and MMS messages

The app must not delay or prevent the user from sending or receiving SMS or MMS messages.

Sending a SMS or MMS message

  1. Ensure that the phone has a valid cellular connection.

  2. Ensure that the phone is not in Airplane mode by viewing the phone Settings page.

  3. Launch your app.

  4. Close the app by tapping the Start button.

  5. Verify that a SMS or MMS message can be sent to another phone.

Receiving a SMS or MMS message

  1. Confirm the phone has a valid cellular connection.

  2. Ensure that the phone is not in Airplane mode by viewing the phone Settings page.

  3. Send SMS and MMS messages to the phone and wait for up to 10 minutes.

  4. Close the app by tapping the Start button.

  5. Verify that notifications regarding the SMS or MMS messages are displayed on the phone either from within the app, or within 5 seconds after the app is closed.

5.3.3 - App responsiveness with incoming phone calls and messages

The app must not stop responding or close unexpectedly when there is an incoming phone call, SMS message, or MMS message.

  1. Ensure that the phone has a valid cellular connection.

  2. Ensure that the phone is not in Airplane mode by viewing the phone Settings page.

  3. Receive an incoming phone call, SMS message or MMS message.

  4. Verify that the app does not stop responding or close unexpectedly when the notification is received.

  5. After verifying the above step, tap on the message notification or receive the incoming phone call.

  6. If an incoming phone call was received, end the phone call.

  7. If an incoming phone call was received, verify that the app is displayed to the user and the app does not stop responding or close unexpectedly when the phone call is ended.

  8. If a message was received, verify that you can return to the app by pressing the Back button.

Requirement

Requirement Text

Test Steps

5.4.1 - Malicious software screening

The app must be free of viruses, malware, and any malicious software.

  1. Launch your app.

  2. Scan the app for malware.

  3. Verify that there are no viruses, malware or malicious software in the app.

5.4.2 - MSIL type safety verification

Windows Phone implements multiple sandbox mechanisms to help protect the integrity of the device and the apps running on the device. The Common Language Runtime (CLR) on Windows Phone relies on the type-safe execution of app code to help enforce security and isolation mechanisms.

An app must implement type-safe MSIL code to pass certification. For more information about C# unsafe code, see Unsafe Code and Pointers (C# Programming Guide).

5.4.3 - Security transparency verification

The Windows Phone app platform does not allow an app to run security critical code. An app that invokes security critical code will fail certification.

For more information about the .NET Security model, see Security Changes in the .NET Framework 4.

5.4.4 – App logic in a package

Your app must not attempt to change or extend the packaged content through any form of dynamic inclusion of code that changes how the application behaves with regard to the certification requirements. Your app, should not, for example, download a remote script and subsequently execute that script in the local context of the app package.

Requirement

Requirement Text

Test Steps

5.5.1 - Removed

5.5.2 - Content and themes

App content, such as text and visual elements, must be visible and legible regardless of the phone theme without panning horizontally or zooming. For example, if the phone theme changes from black background to white background, the text and visual elements of your app must be visible or legible. As another example, when content loads into a WebBrowser control, the text and visual elements must be visible or legible without requiring the user to pan horizontally or zoom.

  1. Navigate to the Settings page in the app list.

  2. Tap theme and change Background to 'Dark'.

  3. Launch your app.

  4. Verify that the text and visual elements of the app are visible and legible without requiring the user to pan horizontally or zoom.

  5. Navigate back to the theme page under Settings, and change Background to 'Light'

  6. Launch your app.

  7. Verify that the text and visual elements of the app are visible and legible without requiring the user to pan horizontally or zoom.

Requirement

Requirement Text

Test Steps

5.6.1 - Technical support information

An app must include the app name, version information, and technical support contact information that are easily discoverable.

  1. Launch your app.

  2. Verify that the app displays the app name, version information and technical support contact information in a location that is easy to discover.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.