Appx Development for Windows 10 Store

Posted by on in Blogs

One of the most interesting new features introduced in RAD Studio 10.1 Berlin Update 2 Anniversary Edition is the support for building Windows 10 APPX application packages.

YouTube reply of EMEA Embarcadero developer webinar "Appx Development for Windows 10 Store" from December 14th, 2016, is available at https://youtu.be/hEOk3Ztm-8g

APPX development in RAD Studio

RAD Studio already provides built-in support for creating apps that can be distributed through Apple AppStore (iOS, Mac) and Google PlayStore (Android). Berlin Update 2 introduces support for the latest version of Windows 10 (Anniversary Update) completing the portfolio of all newest versions of supported operating systems in RAD Studio 10.1 Berlin, including iOS 10, Android 7 Nougat and macOS Sierra.

Windows 10 Store support in RAD Studio opens new possibilities for publishing and delivering Windows applications developed with Delphi or C++Builder. You can take a Win32 or Win64, VCL or FireMonkey, project and using Windows 10 SDK tools converted to appx package that can be deployed to Windows 10 Store.

The first thing for APPX development in RAD Studio is to make sure to you have correct versions of software installed.

  • Windows 10 Anniversary Update. It has to be the latest version of Windows 10. Look in "Update History" for Windows Build 1607. That's the one you need.
  • RAD Studio 10.1 Berlin Update 2 Anniversary Edition. It has to be "Update 2". If you are not sure, you can check the version of RAD Studio in "Help - About"
  • Windows 10 SDK. It installs as part of RAD Studio installation. It contains command line tools needs for APPX creation

The next step is to make sure that you have enabled "Developer Mode" on Windows 10. This is required for installing APPX packages signed with test certificates. You can find this option in Windows 10 "Settings" under "Update & Security" and "For Developers". By default the "Windows Store Mode" is set which only allows installing apps coming from Windows Store. Check "Developer mode" option. This will take a moment to download and install necessary bits.

Now you need to prepare RAD Studio for APPX development. This is just one time operation, similar to preparing RAD Studio for mobile development. You need to configure Windows 10 SDK. In "Tools - Options" select "SDK Manager" and add "Windows SDK". It should find it automatically. The IDE needs to know the location of "MakeAppx.exe", "SignTool.exe" and "MakeCert.exe".

Another one time preparation is creating and installing a local certificate that is needed for digitally signing your APPX packages. Still in the "Options" menu we need to go to "Provisioning" tab. Click on the "Create self-signed certificate..." button to launch the wizard that will walk you through the steps of creating a test certificate. You should see the certificate info after a few seconds. If you see, you know that the IDE sees it as well.

One thing is creating a certificate, but the second thing is to tell Windows that it exists. Now we need to install the certificate. Right-click on newly created certificate in Windows Explorer and select "Install pfx" option from the context menu. That should start the import certificate wizard. Locate your certificate and install it into local machine's "Trusted People" certificate store.

Now both Windows and RAD Studio are configured and ready for building APPX packages.

APPX "ad-hoc" Local Deployment

Let's create our first APPX package with RAD Studio. Before publishing to Windows Store, we can create and test it locally. This is why the "ad-hoc" provisioning option is there. Create or open any Windows project with RAD Studio. This could be Delphi or C++Builder. Win32 or Win64. VCL or FireMonkey. Your choice. To keep things simple create a new Delphi VCL Forms application and drop on button on it and write a line of code to display a message in button's OnClick event. We have now something for testing.

The first thing for APPX development is to change active project's configuration from "Normal" to "Application Store". This can be done in "Project Manager". I'm keeping the default Win32 target and "debug" build configuration. Switching configuration to "Application Store" will show the current version of Windows 10 SDK set for the project.

Before we can generate the appx package we need to go "Project - Options" and set the certificate we want to use to sign our app. In the "Provisioning" enter the location of the certificate in the "Certificate File" edit and enter certificate password that was created in the "Create Certificate" wizard. Click OK.

Now we are good to go. From the "Project" menu select "Deploy" option. Right-click on the name of the project in "Project Manager" and select "Show in Explorer" option. There should be "Win32" subfolder in your project directory. Drill down and you should find the APPX package in "Win32\Debug\AppxTestApp\bin" folder.

Right-click on it and select "Open". The dialog will pop up asking if you want to install this app. Click on "Install" and in few moments you will see the dialog to "Launch" the app. Click on it and the app should just run.

We have managed to create and deploy appx package locally for testing purposes. All APPX packages installs into hidden "C:\Program Files\WindowsApps" folder.

APPX Windows 10 Store Deployment

We have an app. Let's deploy it to Windows 10 Store!

The first thing before we can publish our apps in Windows 10 Store is to register as an app developer with Microsoft. Go to https://developer.microsoft.com/en-us/store/register and sign up for an account. You will need to make a one time payment and also choose your "publisher name" that will be used as your "brand" in Windows 10 Store.

Currently you need to additionally apply to Microsoft if you want to publish apps created with "Desktop Bridge" and this is the technology that RAD Studio uses. Here is the link to sign-up for Desktop Bridge publishing: https://developer.microsoft.com/en-us/windows/projects/campaigns/desktop-bridge

In order to be accepted you need to give an URL to the app that you want to convert and publish. Last year I have created "Molecule Hero" proof-of-concept Delphi FireMonkey 3D app that has already been accepted to Google PlayStore so I have decided to publish the same app to Windows 10 Store. The source code of "Molecule Hero" app is available from GitHub.

When you log into your developer account there is "Dashboard" that you can use to manage your applications. Click on the "Create a new app" button.

This will display an option to enter a name of the application that you want to create. You can check if a name is not already taken. If it is not, click on "Reserve product name" button. You have a new app!

In your developer dashboard there could be many apps in different stages of their lifetime. Now you have one year to submit your app, or the name that you have reserved will no longer be available.

In order to prepare your app for submission to Windows Store you need to enter the information from "App Identity" section of the app into "Provisioning" options of your project. Make sure that the "Distribution Type" is set to "Store" and not "Ad hoc". Build and deploy your application. Now you have APPX package that is ready to be submitted to Windows 10 Store. In the Dashboard select an option to create a "New Submission". This will take you through a number of options that you need to enter like monetization model, type of an app, age category and similar.

Now you need to wait until your application is accepted and visible in the Windows 10 Store. I'm still waiting for mine to be available. Stay tuned!

Summary

RAD Studio 10.1 Berlin Update 2 Anniversary Edition has been released few weeks ago. Probably the most significant new feature that it introduces is the support for building APPX Windows Store packages. This really opens new possibilities in front of Delphi and C++Builder developer that can take existing VCL and FireMonkey project and put them to the Windows 10 Store.

I'm looking forward to see more and more cool apps created with RAD Studio on Windows 10 Store!

 



About
Gold User, Rank: 9, Points: 364
Crazy about Delphi Programming!

Comments

  • Aouatif
    Aouatif Tuesday, 24 October 2017

    Hi Pawel,
    I am using Builder C++ XE for my project so to publish my app on Windows Store I convert it using Desktop Bridge Conveter. And it works for me.
    But Now I need to use the Windows Store in-app purchase API for some integrated purchases in my soft. Is the new Builder C++ 10.1 update 2 support all the API UWP ? (I need to use that one https://docs.microsoft.com/en-us/uwp/api/Windows.Services.Store)

  • Paweł Głowacki
    Paweł Głowacki Sunday, 29 October 2017

    Hi Aouatif,
    The support for in-app purchases for Windows Store is not something that we provide out-of-the-box, but the Product Management has it on the roadmap. I will ping them, but it is difficult to say when we support it out-of-the-box.
    best regards,
    Paweł

  • Amanda Nunes
    Amanda Nunes Thursday, 5 October 2017

    Google
    this one for sure.

  • Amanda Nunes
    Amanda Nunes Thursday, 5 October 2017

    Google
    is this one

  • mariavanquez
    mariavanquez Monday, 28 August 2017

    [URL=https://google.com]great post[/URL]

  • Cheryl
    Cheryl Friday, 9 June 2017

    Pleasant case. Only one question, the precious stone representation, pivoting, zooming is so moderate, there are a few iotas and securities yet less for genuine. Since in the past I actualized an atom watcher in pascal specifically utilizing opengl (I tried it with you precious stone particle and my application is quick and smooth)EssayChamp
    and I am assessing to move it to rad studio utilizing 3d objects I might want to comprehend if the representation gradualness is because of the rad studio 3d execution or not. What's more, in the end how is it conceivable to advance it.

  • Cheryl
    Cheryl Friday, 9 June 2017

    Pleasant case. Only one question, the precious stone representation, pivoting, zooming is so moderate, there are a few iotas and securities yet less for genuine. Since in the past I actualized an atom watcher in pascal specifically utilizing opengl (I tried it with you precious stone particle and my application is quick and smooth)EssayChamp and I am assessing to move it to rad studio utilizing 3d objects I might want to comprehend if the representation gradualness is because of the rad studio 3d execution or not. What's more, in the end how is it conceivable to advance it.

  • Andrea M38428
    Andrea M38428 Thursday, 18 May 2017

    Nice example. Just one question, the diamond visualization, rotating, zooming is so slow, there are some atoms and bonds but not so much for real world. Since in the past I implemented a molecule viewer in pascal directly using opengl (I tested it with you diamond molecule and my app is fast and smooth) and I am evaluating to move it to rad studio using 3d objects I would like to understand if the visualization slowness is due to the rad studio 3d implementation or not. And eventually how is it possible to optimize it.
    Thanks.

  • Paweł Głowacki
    Paweł Głowacki Tuesday, 23 May 2017

    Hi Andrea,
    The more complex the model, the slower it gets. I have primarily built this demo for showcase cross-platform FireMonkey support, without thinking too much about performance.
    Doing this more low level should make it faster.
    Stay tuned!

  • Michael L2387
    Michael L2387 Thursday, 9 March 2017

    Hi and thanks for this step by step guide.
    Unfortunately I must be missing a step somewhere as your screen shot where you finally get to install the adhoc software is different to mine.
    Under capabilities mine says "Uses all system resourses", whereas yours says "Runs full trust mode".
    When I do try to install I get an installation failed for the reason "Either you need a new certificate installed for this app package, or you need a new app package with trusted certificates. You system administrator or the app developer can help. A certificate chain processed, but terminated in a root certificate which isn't trusted (0x800B0109)"

  • Paweł Głowacki
    Paweł Głowacki Tuesday, 14 March 2017

    Hi Michael,
    Did you install the certificate in the "Trusted People" store? Clearly it has something to do with execution rights, so I would look in Windows itself...
    I hope it helps,
    Paweł

  • George Birbilis
    George Birbilis Wednesday, 28 December 2016

    Should have way to flag comments in the community by spammers like user "dimplemerry" above and/or report user profiles to take down (and remove all their spam comments in one step)

  • dimplemerry
    dimplemerry Thursday, 22 December 2016

    a href="/http://www.writerhelp.co.uk/writers-voice-buy-dissertation-online-right-away”>Buy Dissertation Online Right Away</a> No dissertation! No graduation! That is guaranteed. Writing a dissertation is the fundamental requirement of the academics. Ace it and count yourself in the handful of most accomplished personnel. But obviously, tons of hard work along with pre and post preparation is essential to keep up with the pressure of the complex writing. So, follow the guideline or buy dissertation online to rescue you from mountains of trouble and mess. The hardest of all tasks is to choose the topic upon which the entire write up will be based. Take time, as much as you want, because once you initiate to tread it there is no turning back! And if you somehow find a way, you my friend have lost million dollar time. Above all another option for you is to search for the experts and get assignment help online."

  • Barry N28163
    Barry N28163 Wednesday, 21 December 2016

    Hi Pawel.

    Do you know the MSBuild parameter to use from the command line to select the platform configuration
    you require.

    Our automated builds, already create the normal windows 32 & 64 executables,
    eg: msbuild MyProject.dproj /p:Config=Release /p:Platform=Win32/64

    I'd like to add the creation of the Windows Store binary as well. I've tried a few parameters around
    BuildType (as this is node name for App Store) but they haven't done anything.

    Any help would be appreciated.

  • Milen L
    Milen L Wednesday, 14 December 2016

    Hi Pawel,
    Many respects to your work and presentation. It is clear and concise.
    But I am a bit anxious about this overcomplicated procedure. Some kind of déjà vu, as installing new network card 20 years ago.
    No, this is not RAD Studio issue, but might be issue with deep roots in current state of information technologies.
    Thank you for your efforts,
    Milen

  • Please login first in order for you to submit comments
  • Page :
  • 1

Check out more tips and tricks in this development video: