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.
As an Android developer publishing an application in Google Play, you simply publish the app and it appears live. However, in the Windows Store (and Apple’s App Store), there is a certification process where your application undergoes testing and a review by a human being before being published.
So, you might wonder if there are any tips and tricks for passing certification in the Windows Store. Here are the top 10 tips that will help you pass certification.
1. 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.
2. 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.
4. 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:
5. Use the Windows Store simulator for testing calls to the Windows Store. 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.
6. Use the Visual Studio simulator for testing touch as well as different screen sizes, resolutions, and orientations. A certification tester (and of course, your end users) may be using a machine very different from your development box. The Visual Studio simulator lets you test your application’s behavior in a variety of conditions.
In the Run dropdown menu with the green play button, select "Simulator" (it is probably currently set to "Local Machine"). Then click the button to start the simulator.
When the simulator launches, you will see a menu of buttons on the right-hand side.
Below the minimize button, the buttons are (in order from top to bottom):
Using the Visual Studio simulator allows you to test how your application will behave across numerous machines. You can simulate touch if you don’t have a touch machine, orientation changes for slates/tablets, different screen sizes/resolutions, and different locations if you utilize location-based services.
7. Ensure that your app is fully functional, and won’t be perceived as unfinished. This maps back to certification requirement 1.2, which says that apps must be fully functional. A number of things in this category can trigger certification failures:
For more information, see this “1.2 App must be fully functional” blog post.
8. Test for performance. Apps must launch in 5 seconds or less and suspend in 2 seconds or less, on a low-power computer. The Windows App Certification Kit does run performance tests, so you can use that data to measure how your application is performing. If you find that you do need to improve performance on launch and suspend, here are a few tips:
For more detailed information, see this “3.8 App must meet the basic performance criteria” blog post.
For more detailed information, see this “4.1 App must comply with privacy requirements” blog post.
10. Properly localize your app for all languages that it supports. Here are some common “gotchas” that can cause the localization certification requirement to fail:
For more information (including the difference between supporting languages and markets, and how to implement support for different languages properly), see this “6.5 App must be localized” blog post.
Hope these tips were useful! If you want further information on developing a Windows 8 application, register for the AppBuilder program to get 30 days of guidance. You can also get $100/app for publishing apps in the Windows Store before June 30, 2013; see Keep the Cash for details.
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.
Blog posts in my “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
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
Windows Store blog: 5 tips to getting your apps certified quickly