.net, UWP, Windows Store Apps

How to submit a UWP app to the Windows Store

If you follow me on twitter, you might have seen that I recently tweeted that I had published my first ever Windows Store app.

My plan wasn’t to submit this, retire and wait for the money to come rolling in (at least partly because I made the app free, and there’s no adverts in it). What I really wanted to do was create a UWP (Universal Windows Platform) app to see what the challenges were in creating and publishing something to the store.

I’ll not write about creating the app in this post – this time I want to focus mainly on what I needed to do to get a simple app to the store. I’ll also let you know some of the mistakes I made during the process so hopefully anyone reading this and thinking of submitting an app won’t repeat them.

I should also say there’s a huge amount of brilliant documentation on the Microsoft site about this process, in lots of separate pages – but I wanted to put together a post that showed how to follow the whole submission process from beginning to end.

Register as a developer

The first thing was to let Microsoft know I wanted to register as an app developer – I registered as an individual, and told them my location. There are further details on this process at this link, but it’s pretty straightforward.

There is a charge to register as a developer – this link takes you to a list of fees.

Register your app’s name

The next thing to do is log into your Developer Dashboard here and choose a name for your app – click on the “Create new app” link on the screen below.You can do this when you want to register your app, or you can do it before you’ve written a line of code – it’s just reserving the name you want your app to be listed under in the store.

You can always see the apps you’ve already begun processing – the app I released a couple of days ago is called “Electronic Resistance Calculator”, and I pre-registered that name which you can see on the left hand side of the screen below.


Once you’ve clicked to “Create new app”, you’re taken to a screen like the one below.


You can check the availability of the name you want to reserve, and if it’s up for grabs, you can reserve the name.

Once you’ve reserved it, this name will appear as a link on your Developer Dashboard along the left hand side as one of your apps.

Tell Microsoft about the app

Once you’ve developed your app, there’s a certification process to get your app into the store – I was a bit worried that this would be a complex process, but it actually was very straightforward.

I went back to my Developer Dashboard, and clicked on the app name in the left hand menu that reserved earlier. This takes me to a screen like the one below.


The description on the screen says it all really – I clicked on “Start your submission” to begin the process. This took me to the screen below.


The headings are pretty self explanatory – you don’t even need to do them in order (although you do need complete “Packages” before you can complete “Descriptions”).

This process did take me a little while to work through and complete – as you might guess, I clicked on each of the linked headings in the table, and these took me to a screen where I had to add information about my app. But even though the screens were quite long sometimes, they weren’t complicated or hard to fill out. I managed to complete all the submission questions in about 15 minutes.

Something I got wrong: In the “App properties” questions, I was asked what hardware capabilities my app required. Since I was building an app to be used on Mobile and Desktop, I checked both the Touch screen and Mouse boxes…this was a bad idea.


I clicked Touch screen because my mobile phone obviously has a touch screen…but what this meant was that I had accidentally told Microsoft that any device that runs my app needs BOTH a mouse and a touch screen (which isn’t correct). So desktop users who download my app (and don’t have a touch screen) will get an incorrect warning saying my app won’t function correctly on their device. My fault.

Uploading packages

When I came to the “Packages” section of the submission process, I was shown the screen below:


But how do I create a package? Turns out that I can use Visual Studio to do this.

Use Visual Studio 2015 to create the appxupload file

I had developed the application and tested it using the different simulators in Visual Studio 2015 (e.g. Windows Phone 10 of various sizes, and a desktop app too), I wanted to get this app package to the store during the submission process.

And fortunately this is very easy to do, using Visual Studio 2015. First I went to the “Project -> Store -> Create App Packages…” menu item.


This launched a wizard to help me through the process.


After clicking “Next” on the screen above, I was asked to enter my developer account details:


And after entering my details, I entered my mobile phone number and received a code which I entered into the wizard – this is a pretty standard method of authentication.

I was then shown a list of the names that I had reserved in the Windows Store in the screen below. I selected the app name I reserved earlier, and hit next.


Next up was the most important part of the process – creating the app package. Again this was a simple screen, in which I chose a few details like where I wanted to save the package locally, the version number, and which hardware architecture I wanted to target. screenshot.1460297016

Once I had chosen all of these, I hit the “Create” button to start generating the package. This takes a long time – I spent a lot of time watching the little icon in VS2015’s status bar.


Eventually the package is created, and the screen below appears, which allows us to launch the Windows Certification Kit – this runs through a series of quality checks on my app, which saves me submitting something to the store which is going to be rejected because of some stupid thing I’ve forgotten to do.


On launching the kit, I was allowed to choose which tests to run – I’m probably always going to select all of these tests to reassure myself as much as possible before submitting an app.


Once I hit next, the certification checks proceed.


And eventually, I saw a screen like the one below telling me that my app passed initial validation.


I returned to the “Packages” form in the online Developer Dashboard, and dragged the generated package (with the appxupload extension) to the correct area on the website.


And eventually, I was shown the screen below which confirmed the package had been uploaded. Nearly there.screenshot.1460297926

I hit save, and at this point I was allowed to edit the “Descriptions” form – obviously enough, this is just a screen to enter a brief description of your app and some release notes.


Once I saved all this information, I was able to complete my part of the submission process, and I was able to see my submission progress.


I moved from “Pre-processing” to “Certification” within about 30 minutes.


One unwelcome surprise: When I returned to this page a few hours later, the message had changed from saying it would take a few hours to saying it would take a few days! There might have been a good reason for this, but it would have been a better user experience to understand why the length of time changed.

Some other observations

In the end, it was certified about 24 hours later which was fine. I received a couple of emails about this – one certifying that my app was suitable for all ages, and another confirming that I had passed certification, and that it should be available in the store in about 16 hours.

The email also gave me a link to my app which would work when it was published – I think that this link only works on devices with Windows Store app (or at least when I tried the link on Windows 7 machine, I just got a blank browser page). It’d be good if this could be handled a bit better on devices without a Store app.

When the app became available in the store, the additional information section section said a few things, a couple of which were surprises:

  • I only have permission to install this app on ten Windows 10 devices. I’m not sure why this restriction exists, although it seems plenty for me.
  • The app has permission to access my internet connection – this is my fault, because I went back to my App’s manifest in VS2015 and found that I had left this checked. This is actually ticked by default when you create a new UWP app in VS2015 – I should have unchecked this because there’s no need for my app to access the internet – I’ll fix this error (and the other mistakes) if I submit an update to the store for this app.


I hope this summary helps someone working through the process of building and submitting an app – it’s a straightforward process, especially if you have VS2015. I found there were a few unexpected things, but they’re pretty minor and easy to avoid or workaround since I now know to expect them.