Common certification errors when submitting to the Windows Store

Windows StoreThis post kicks off a blog post series on common certification failures when submitting an app to the Windows Store.  Windows 8 development is taking off, and some folks have pinged me with questions when their apps don’t get in the first time.  I will address the most common issues with Windows Store submission. 

Today, I will provide some general guidance.  For the rest of the week, I will walk through the top reasons for certification failure and how to fix them. 

General tips & tricks for Windows Store submission 

 

Run the WACK.   The Windows Application Certification Kit (WACK) is an awesome tool.  Perhaps you have developed for an app store before and encountered the really fun cycle of: submit your app, wait, receive a failure notice, fix your bug, re-submit your app, wait, receive a failure notice, fix your bug, re-submit your app, wait…and repeat.  The WACK reduces this cycle by giving you a way to screen your app locally for issues before you even submit it to the Windows Store.  Essentially, the WACK is a series of automated tests (which are also run during certification).  Running them locally, you can find and fix bugs before you submit your app to the Windows Store.  The WACK is installed when you install Visual Studio Express 2012 for Windows 8 (available as a free download here, halfway down the page in blue).  When you install Visual Studio, you should also get a tile in your Start Menu for the WACK (see the picture below).  Finally, here is some how-to documentation on using the WACK.   

StartMenuWACK

 

Test on ARM.   Particularly for the performance requirements, it helps to test on devices running ARM processors and/or low-end machines.  In general, it’s a good idea to test on several different machines. 

Also note that your app must provide the same user experience on all processor types that it supports (this is certification requirement 3.2).  If your app has a different user interface or functionality when it runs on different processor types, you must submit a separate app for each processor type and describe the differences in the “Description” section of each app.

Finally, you may be wondering “How do I test on ARM?” since Visual Studio doesn’t run on ARM devices.  You can accomplish this through remote debugging.  Tim Heuer wrote a fabulous post on how to enable remote debugging on an ARM device

 

Read the documentation.   I know that this part isn’t fun, but taking some time to read through ALL of the certification requirements will help you avoid mistakes.  Here is the full list of Windows 8 certification requirements.  There is also guidance on avoiding common certification failures and resolving certification errors.  Finally, here is the App Developer Agreement for developers and Windows Store Terms of Use for the users who download your app. 

I’ve also listed some additional documentation in the Resources section below. 

 

Create an accurate and compelling app listing page.   When you submit your app to the Windows Store, you will be required to fill out various metadata about your app: a description, age rating, etc.  Take your time and do a good job filling out your application information.  (If you’ve taken the time to write a great app, don’t rush through this part!)  There is a lot of great guidance on this at Preparing your app for the Store (marketing has never been a strength of mine, so I find this really useful).  Here are some specific tips around creating a great app listing page: 

  • Make your application description as detailed and descriptive as possible.  There is guidance on creating a great app listing that is truly helpful. 
  • Don’t use your listing page to promote your company or products.  Certification requirement 2.3 forbids advertising in an application description, so beware the appearance of trying to sneak advertising into your description. 
  • Most apps should have a rating of 12+.  If you're having trouble deciding between two age ratings for your app, choose the higher one.  Remember that apps never fail certification for having too high a rating.  (See certification requirement 6.2 for more info.)   
  • Don't declare your app as accessible unless you specifically engineer and test it for accessibility scenarios. 
  • Make sure that you tell the tester everything that he/she needs to know.  There is a “Notes to Tester” section when you submit an application, and you should utilize that as your mechanism to “talk” to the person who will be reviewing your app for certification.  Besides the obvious items that you should provide (like the username/password of a demo account if your app requires login), you can explain your development choices and how they align to the certification requirements if you feel that anything may be misinterpreted. 

 

Windows Store simulator.   Your app can use the Windows Store commerce APIs from the Windows.ApplicationModel.Store namespace for features like trial functionality or in-app purchases.  If you use these: first of all, test your app to verify that it handles typical exceptions; you can do this using the Windows Store simulator available through the CurrentAppSimulator class.  Then, make sure that you change your app to talk to the real Store and not the simulator before submitting (your app should use the CurrentApp class instead of the CurrentAppSimulator class, which is for testing purposes only).  Finally, ensure that your app doesn't crash if there's no network connectivity. 

 

Roaming Data.   This is a tip recommended by Jason Follas in a recent DevRadio interview that we did (link to come, once it’s published).  Clear out your roaming and local settings as part of a "clean install" test before submitting to the Store.  Remember that the certification testers are running your application installed on top of a clean build of Windows 8.  Jason had a submission failure due to a frustrating "works on my machine" bug: the roaming data wasn’t initialized properly, but he had this information already saved in his roaming settings, and the bug was only apparent on a new install.

 

More to Come!

For the rest of the week, I will explain the top certification errors when submitting to the Windows Store: 

1.2 Your app must be fully functional.   

3.8 Your app must meet the basic performance criteria on a low-power computer.

4.1 Privacy requirements

6.5 You must localize your app for all languages that it supports

 

Finally, I want to close with some great resources, including a link to Windows Store developer support if you get stuck. 

 

Resources 

Windows 8 app certification requirements – This is the full list of certification requirements.  If your app fails certification, it will specifically cite one of these requirements as the reason for failure. 

Avoiding common certification failures – This article lists some of the top causes of certification failure.

Resolving certification errors – This article goes through each requirement and lists additional resources and/or common gotchas for that particular requirement. 

Developer support for Windows Store apps – There are a number of support options available, including phone, email, and live chat.  You can also use the forums for free. 

BUILD 2012 session on “Windows Store: how does it work?” – This is a great video from BUILD 2012 on submitting to the Windows Store.  The slides are available for download too. 

 

Other blog posts in this “Common Windows Store Certification Failures” series:

General tips & tricks and resources

1.2 App must be fully functional

3.8 App must meet the basic performance criteria

4.1 App must comply with privacy requirements

6.5 App must be localized