Windows Phone Store

,Windows Phone Submission Process

Windows Phone Submission Process, Own Work

Windows Phone Store

"All Windows Phone applications must pass Microsoft certification requirements to be published on the Windows Phone Store."

  • The submission and certification process for publishing an application at the Windows Phone Store includes:
    1. Submit - The programmer needs to submit a publication request through their account at the Windows Phone Dev Center by completing a submission request form and uploading the application XAP file.

    2. Add Metadata - The programmer needs to provide information about the application, including description, category, price, screen shots and images for displaying the application in the store.

    3. Validate - Microsoft will validate the contents of the XAP file to ensure all the required components exist and are defined properly. The XAP file:
      • must contain a valid Windows Phone manifest file WMAppManifest.xml.
      • must contain a valid .NET manifest file AppManifest.xaml.
      • must contain all the assembly files required by the app.
      • must contain all the resource files (eg. images, data files) required by the app.
    4. Test and Certify - Microsoft will run tests to verify the app meets their App certification requirements for Windows Phone, runs properly, and is free of malicious content. If the application passes the test, Microsoft will certify the application. If the application fails the tests, a failure report will be created. After fixing the issues presented in the failure report, the application can be submitted again.

    5. Sign - Microsoft digitally signs the application with an Authenticode which will make the application executable and authenticate the application.

    6. List in Windows Phone Store - After approval, the application can be published immediately, or it can be published on another date, as the programmer requested in the application submission.

.Dashboard

Computer Clip Art, Public Domain

Windows Store Dashboard

"The Windows Store Dashboard is where a developer submits a new app, sees how their published apps are selling and performing, and gets information to help plan future apps."

  • The developer's account at the Dev Center includes a dashboard that provides information about the developer's applications. This includes financial information, download counts, crash counts, and other data for tracking the performance and sells of the developer's applications.

  • The dashboard also provides status messages concerning the progress of the application submissions:
    • Submission in Process
    • Certified
    • Certification Failed.
    • Signed and Encrypted
    • Ready to Publish
    • Published to Store

Application Submission Requirements

"The requirements for Windows Phone applications change periodically. Visit the Windows Phone Dev Center to get a list of the current submission requirements."

  • A check list of requirements for application submission can be obtained at the Windows Phone Dev Center. Some of the requirements for publishing a WP 7.x application were:
    • The XAP file can not exceed 225 MB.
    • Apps must use documented APIs for the OS version the app targets.
    • All the metadata must be provided to publish the app, this includes images of the correct type and size.
    • The WPAppManifest.xml file must be correctly filled out, including title, author, description, publisher, graphic image names, etc. (no boilerplate entries left in the manifest). This also includes specifying all the capabilities required by the app (but no more capabilities than are actually required).
    • The application images must be of the correct type and size. Below is a table of image requirements for WP 7.x:

      Description Location Size Format
      Application List Icon In XAP (Content) 62 x 62 pixels PNG
      Application Tile In XAP (Content) 173 x 173 PNG
      Splash Screen In XAP (Content) 480 x 800 JPEG
      General App Images 2000 x 2000 maximum JPEG or PNG


Application Capabilities and the Manifest File

  • When a Windows Phone project is created, the manifest file (WMAppManifest.xml) is automatically created. This "automatically created" manifest file contains a default set of capabilities for your application. Before submitting your application to the Windows Phone Store, the manifest needs to be updated to correctly specify only the exact capabilities your application requires.

  • If you don't specify an application's capabilities accurately in the manifest, the application might not run as expected. It may also fail the validation test when you submit it to the Windows Phone Store, or it may be unnecessarily rejected by a user for privacy or security concerns.

  • For example, a project I created for WP 7.1 listed the following capabilities in the manifest file:

    <Capabilities>
       <Capability Name="ID_CAP_GAMERSERVICES"/>
       <Capability Name="ID_CAP_IDENTITY_DEVICE"/>
       <Capability Name="ID_CAP_IDENTITY_USER"/>
       <Capability Name="ID_CAP_LOCATION"/>
       <Capability Name="ID_CAP_MEDIALIB"/>
       <Capability Name="ID_CAP_MICROPHONE"/>
       <Capability Name="ID_CAP_NETWORKING"/>
       <Capability Name="ID_CAP_PHONEDIALER"/>
       <Capability Name="ID_CAP_PUSH_NOTIFICATION"/>
       <Capability Name="ID_CAP_SENSORS"/>
       <Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
       <Capability Name="ID_CAP_ISV_CAMERA"/>
       <Capability Name="ID_CAP_CONTACTS"/>
       <Capability Name="ID_CAP_APPOINTMENTS"/>
    </Capabilities>

    However, the automated tests in the "Windows Phone Store Test Kit" determined the only needed capability was:

    <Capabilities>
       <Capability Name="ID_CAP_NETWORKING"/>
    </Capabilities>

  • Windows Phone works under a security model based on its capabilities. When the user installs an application they will be asked to "opt in" to letting the application use certain capabilities. This allows the user to determine if he wants to allow the application to perform capabilities that may be of privacy or security concerns. In the above example, the application only obtains data feeds for reporting the weather forecast for specified locations. If I did not remove the unused capability-entries from the manifest file, the user would get the impression the application was using the following capabilities: camera, microphone, gelocation, access to appointment data, access to contacts data, and access to device-specific information. A wise user would reject the application because it has no legitimate reason to have all those capabilities.

  • A full list of all the application capabilities is available from the following Windows Phone Development Center article: App capabilities and hardware requirements for Windows Phone.


  • Note 1:
    The Windows Phone "Store Test Kit" was formerly named "Marketplace Test Kit" in SDK 7.x.

    Note 2:
    The Marketplace Test Kit installed with Windows Phone SDK 7.1 is obsolete. Use the Store Test Kit installed with Windows Phone SDK 8.0 (which only runs on the Window 8 operating system) to test apps that target Windows Phone OS 7.1.

    Note 3:
    Using Windows Phone SDK 7.1 required the use of either the "Zune" software or the "Windows Phone Connect Tool" to test with a physical device. This is no longer needed in SDK 8.0 as the connection capability was added to Visual Studio 2012. See what else is New in Windows Phone SDK 8.0


    Windows Phone Store Test Kit

    "The Windows Phone Store Test Kit provides a suite of automated and manual tests to help prepare your apps to be accepted in the Windows Phone Store."

    • Windows Phone Store Test Kit determines which capabilities an application requires, in addition to many other tests used in the process of submitting an application to the Windows Phone Store.

    • It is recommended the tests be run against a release build that is targeting a "Windows Phone Device".

    • To start the tests connect the There are three tabs inside the Store Test Kit for applications that target Windows Phone OS 7.1:
      1. Application Details - On this page you specify the image resources.

      2. Automated Tests - On this page there are two sets of tests. The first "Run Tests" validates the XAP package, reports the capabilities used by the device (to be put the manifest file), and validates the images specified on the first tab. The second set of tests "Start Windows Phone Application Analysis" analyzes the application's performance. See screen capture below.

      3. Manual Tests - On this page is a list of tests to be performed manually against your application.
.Performance Analysis

Computer Clip Art, Public Domain

Windows Phone Performance Analysis Tool

"The Windows provides detailed measurements of various aspects of a running Windows Phone application."

  • Visual Studio contains the Windows Phone Performance Analysis Tool which is located under the debug window, or use keyboard shortcut ALT+F1:

    • The Windows Phone Performance Analysis Tool measures the time it takes an application to perform certain tasks (start up, load images, run animations, respond to input). The tool also measures the resources the running application consumes (memory, cpu, battery charge).

    • The analysis data is written to a .sap file stored in the project's root directory. The file name contains a timestamp.

    • The analysis tool contains a timeline graph which displays the cpu and memory usage at any particular point during the program execution.

    • Segments of execution time can be marked within the analysis graph. The tool then report warnings and measurements within that time period. Such as:
      • performance warnings for cpu and frames
      • cpu usage by functions, methods, and frames
      • cpu consumption for each thread

.Performance Analysis Tool

Performance Analysis Tool, Fair Use