There are many ways to fail Windows Store app certification, and in this article I’ll show you my “favorite” 4 which are almost the simplest but very common. Of course, if you wish to pass the certification, you must think the opposite way, and make sure that those do not happen to you. You could still fail, but you’re chances for passing are much better. Before submitting, always check the official certification requirements list for any changes since your last submission!
The certification requirements can be found here
Let’s start with the list.
This one will make you fail immediately in case you’re using Internet services to download your data. And most of the apps today do. They fetch the data over the Internet and show it to users. The problem is the fact that in order to do that, your app will make requests which might use some of the information that counts as private
Therefore, you need to explicitly say to your user both in your app and somewhere else on the Internet how your app + services use those private information.
2. Set the wrong age rating
During app submission, you need to declare the age for which your app is suitable. If you are using public Internet services to get your data (such as Twitter API where you don’t have access to what people put or share), the age rating should be at least 12+ or even 16+ because if the app implements search, you never know what the results may show (pictures of violence or nudity for example), which will cause your app to fail.
If your app provides a user with uncontrolled: (i) access to online social networks, or (ii) sharing of personal information with third parties, including other gamers or online acquaintances, then you must assign it a Windows Store rating of at least 12+. For such activity to be considered "controlled", your app must include parental control features that require parental permission to use such sharing features, and you must identify those and explain their functionality in the Notes to testers.
3. Don’t use Windows App Cert Kit
Windows App Cert Kit is a great tool which enables you to do some automated technical tests on your app to make sure it passes that same testing during the certification process. When you create the app package from Visual Studio, it asks you to test the app, but you can skip that step and don’t do it. That way you seriously risk failing the certification because some failures in the app are not obvious even if you developed it (for example, startup time – you might not notice that it exceeds 5 seconds, but if it does, it immediately fails). I wrote earlier about some of the issues with the tool that you may encounter.
The tool gives you information about the following:
- Crashes and hangs test
- App manifest compliance test
- Windows security features test
- Supported API test
- Performance test
- App manifest resources test
- Debug configuration test
- File encoding
- Direct3D feature level support
- App Capabilities test
- Windows Runtime metadata validation
But even if you use the tool, there is another way to fail certification and it’s by ignoring the warnings it presents to you, such as this one
Even if your app starts under 5 seconds, it may still fail on low end systems if it takes 3 or more seconds to start. Make sure you have a big green PASSED to be on a nice way to pass the certification.
4. Ignore Internet connection failures
If your app uses Internet to get the data, you must know that it can fail easily. Bad reception, out of office, travelling (losing signal), or simply being disconnected means that your app should write a nice message to user that the Internet and the data are not available right now. If you want to fail, just ignore those exceptions and the app will crash which will cause you to fail. I quote:
Your app must not stop responding, end unexpectedly, or contain programming errors
No Internet connection, no fun for the user, but he needs to close the app himself, not your unhandled exception.