I'm a geekette who enjoys playing with new technology for software developers. I work as a Developer Evangelist for Microsoft. My current focus is on machine learning and big data on Azure.
This 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.
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.
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.
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:
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.
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.
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.
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