<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>UWP &#8211; Sibeesh Passion</title>
	<atom:link href="https://www.sibeeshpassion.com/tag/uwp/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.sibeeshpassion.com</link>
	<description>My passion towards life</description>
	<lastBuildDate>Wed, 02 Jun 2021 15:22:31 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>/wp-content/uploads/2017/04/Sibeesh_Passion_Logo_Small.png</url>
	<title>UWP &#8211; Sibeesh Passion</title>
	<link>https://www.sibeeshpassion.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>UWP Application Signin, Release, Distribute, Deploy With Azure DevOps Pipeline</title>
		<link>https://www.sibeeshpassion.com/uwp-application-singin-release-distribute-deploy-with-azure-devops-pipeline/</link>
					<comments>https://www.sibeeshpassion.com/uwp-application-singin-release-distribute-deploy-with-azure-devops-pipeline/#disqus_thread</comments>
		
		<dc:creator><![CDATA[SibeeshVenu]]></dc:creator>
		<pubDate>Sun, 03 Nov 2019 10:52:58 +0000</pubDate>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[UWP]]></category>
		<category><![CDATA[App Center Distribute UWP]]></category>
		<category><![CDATA[Azure DwevOps]]></category>
		<category><![CDATA[Azure Pipeline]]></category>
		<category><![CDATA[Tasks in YAML]]></category>
		<category><![CDATA[UWP Build Signin]]></category>
		<category><![CDATA[UWP Release Pipeline Azure]]></category>
		<category><![CDATA[YAML]]></category>
		<guid isPermaLink="false">https://sibeeshpassion.com/?p=13934</guid>

					<description><![CDATA[[toc] Introduction Building a UWP application is fun but releasing them not. At least that is the experience I had, I was facing a bunch of issues when I try to configure the pipeline to build and release to the app center. Yes, it includes the creation of a certificate too, and here we will see the best practice to handle your certificate. And we will also use the option Variables in the Azure DevOps. Here in this article, we will create the pipelines from the scratch we will create a certificate and save it under the secured files we [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>[toc]</p>



<h2 class="wp-block-heading">Introduction</h2>



<p>Building a UWP application is fun but releasing them not. At least that is the experience I had, I was facing a bunch of issues when I try to configure the pipeline to build and release to the app center. Yes, it includes the creation of a certificate too, and here we will see the best practice to handle your certificate. And we will also use the option Variables in the Azure DevOps. </p>



<p>Here in this article, </p>



<ul class="wp-block-list"><li>we will create the pipelines from the scratch </li><li>we will create a certificate and save it under the secured files</li><li>we will use the certificate to signin the build in the pipeline</li><li>we will create variables for our pipeline</li><li>we will also use some of the existing tasks like, copy, archive etc</li><li>and at the end, we will distribute our artifact to the app center</li></ul>



<p>If any of the above points mentioned felt interesting, then you are in the right place. Let&#8217;s read further.</p>



<h2 class="wp-block-heading">Welcome to the Pipeline World</h2>



<p>Azure DevOps pipeline has a lot to offer, and I am yet to experience all the features it provides. Here I am assuming that you already have a UWP application, and if you have not you can get some sample UWP applications from the official GitHub repositories, I will leave this task to you.</p>



<h3 class="wp-block-heading">Creating a certificate</h3>



<p>The first thing that we need to do is to create our certificate file (PFX). To do that, we already have a <a href="https://docs.microsoft.com/en-us/windows/msix/package/create-certificate-package-signing/?WT.mc_id=DT-MVP-5001828">nice tutorial on the Docs</a>. If you have followed the tutorial, at the end you should be having a PFX file saved in some folder as per your preference.</p>



<figure class="wp-block-image"><img fetchpriority="high" decoding="async" width="1024" height="415" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/Create-Certificate-PFX-File-1024x415.png" alt="" class="wp-image-13935" srcset="/wp-content/uploads/2019/11/Create-Certificate-PFX-File-1024x415.png 1024w, /wp-content/uploads/2019/11/Create-Certificate-PFX-File-300x122.png 300w, /wp-content/uploads/2019/11/Create-Certificate-PFX-File-768x312.png 768w, /wp-content/uploads/2019/11/Create-Certificate-PFX-File-425x172.png 425w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Create Certificate PFX File</figcaption></figure>



<p>Please make a note of the location you had saved your PFX file and the Thumbprint.  </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>What is the difference between a PFX file and Cert file?</p><p>A PFX will have both private and public key in it, and cert file will have only public key in it. Thus sharing a PFX file outside your organization is not a good idea.</p><cite>PFX VS Cert</cite></blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>What is a Thumbprint?</p><p>A Thumbprint is a hexadecimal string that can be used to identify the certificate</p><cite>Thumbprint</cite></blockquote>



<p>Now somehow you forgot your Thumbprint, the same can be easily found in this location in Windows.</p>



<pre class="wp-block-code"><code>C:\Users\sibee\AppData\Roaming\Microsoft\SystemCertificates\My\Certificates</code></pre>



<h3 class="wp-block-heading">Setting up the variables </h3>



<p>As we now have our certificate and the details ready, let us set up our variables in the Azure DevOps pipeline. To do that, go to the library section of the pipeline and click on the +Variable group.</p>



<figure class="wp-block-image"><img decoding="async" width="1024" height="556" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/Varibale-Group-in-Azure-DebvOps-1024x556.png" alt="" class="wp-image-13936" srcset="/wp-content/uploads/2019/11/Varibale-Group-in-Azure-DebvOps-1024x556.png 1024w, /wp-content/uploads/2019/11/Varibale-Group-in-Azure-DebvOps-300x163.png 300w, /wp-content/uploads/2019/11/Varibale-Group-in-Azure-DebvOps-768x417.png 768w, /wp-content/uploads/2019/11/Varibale-Group-in-Azure-DebvOps-425x231.png 425w, /wp-content/uploads/2019/11/Varibale-Group-in-Azure-DebvOps.png 1299w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Variable Group in Azure DevOps</figcaption></figure>



<p>Below is the Variable Group I had created with all the details. </p>



<figure class="wp-block-image"><img decoding="async" width="1024" height="957" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/Variable-Group-With-Details-Pipeline-1024x957.png" alt="" class="wp-image-13937" srcset="/wp-content/uploads/2019/11/Variable-Group-With-Details-Pipeline-1024x957.png 1024w, /wp-content/uploads/2019/11/Variable-Group-With-Details-Pipeline-300x280.png 300w, /wp-content/uploads/2019/11/Variable-Group-With-Details-Pipeline-768x717.png 768w, /wp-content/uploads/2019/11/Variable-Group-With-Details-Pipeline-425x397.png 425w, /wp-content/uploads/2019/11/Variable-Group-With-Details-Pipeline.png 1490w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Variable Group With Details Pipeline</figcaption></figure>



<p>Please do not forget to enable the &#8220;Allow access to all pipeline&#8221; or else you will always get an error in your pipeline. Here the signingCert.secureFilePath is the file path of our PFX file, which we will upload to our secure file section of the pipeline. We will talk about the appSlug and distributionGroupId when we create the distribute to app center task in our pipeline.</p>



<h4 class="wp-block-heading">Upload the certificate to the Secure Files</h4>



<figure class="wp-block-image"><img decoding="async" width="1024" height="583" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/Upload-Secure-Files-in-Azure-DevOps-1024x583.png" alt="" class="wp-image-13938" srcset="/wp-content/uploads/2019/11/Upload-Secure-Files-in-Azure-DevOps-1024x583.png 1024w, /wp-content/uploads/2019/11/Upload-Secure-Files-in-Azure-DevOps-300x171.png 300w, /wp-content/uploads/2019/11/Upload-Secure-Files-in-Azure-DevOps-768x437.png 768w, /wp-content/uploads/2019/11/Upload-Secure-Files-in-Azure-DevOps-425x242.png 425w, /wp-content/uploads/2019/11/Upload-Secure-Files-in-Azure-DevOps.png 1237w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Upload Secure Files in Azure DevOps</figcaption></figure>



<p>To upload our PFX file generated, click on the Library and then Secure files, and upload the file by clicking on the +Secure file.</p>



<h3 class="wp-block-heading">Generate build number automatically (Optional)</h3>



<p>This step is optional. Unfortunately by default the Azure DevOps release to app center task will not increase the build number, thus you will always see the same version number as 1.0.0 in the app center.</p>



<figure class="wp-block-image"><img decoding="async" width="919" height="228" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/Release-App-Center-With-Same-Build-Number.png" alt="" class="wp-image-13939" srcset="/wp-content/uploads/2019/11/Release-App-Center-With-Same-Build-Number.png 919w, /wp-content/uploads/2019/11/Release-App-Center-With-Same-Build-Number-300x74.png 300w, /wp-content/uploads/2019/11/Release-App-Center-With-Same-Build-Number-768x191.png 768w, /wp-content/uploads/2019/11/Release-App-Center-With-Same-Build-Number-425x105.png 425w" sizes="(max-width: 919px) 100vw, 919px" /><figcaption>Release App Center With Same Build Number</figcaption></figure>



<p>And if you want to change it to something like the preceding image, then you can consider reading this step.</p>



<figure class="wp-block-image"><img decoding="async" width="967" height="723" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/App-Center-Release-With-Different-Version-Number.png" alt="" class="wp-image-13940" srcset="/wp-content/uploads/2019/11/App-Center-Release-With-Different-Version-Number.png 967w, /wp-content/uploads/2019/11/App-Center-Release-With-Different-Version-Number-300x224.png 300w, /wp-content/uploads/2019/11/App-Center-Release-With-Different-Version-Number-768x574.png 768w, /wp-content/uploads/2019/11/App-Center-Release-With-Different-Version-Number-425x318.png 425w" sizes="(max-width: 967px) 100vw, 967px" /><figcaption>App Center Release With Different Version Number</figcaption></figure>



<p>The first thing that you need to do is to install <a href="https://marketplace.visualstudio.com/items?itemName=richardfennellBM.BM-VSTS-Versioning-Task">this package to your organization</a>. Once you have done that, you should be able to see related tasks when you search for the term &#8220;Version&#8221; in the pipeline.</p>



<figure class="wp-block-image"><img decoding="async" width="550" height="1024" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/Version-Build-Tool-550x1024.png" alt="" class="wp-image-13941" srcset="/wp-content/uploads/2019/11/Version-Build-Tool-550x1024.png 550w, /wp-content/uploads/2019/11/Version-Build-Tool-161x300.png 161w, /wp-content/uploads/2019/11/Version-Build-Tool-295x550.png 295w, /wp-content/uploads/2019/11/Version-Build-Tool.png 711w" sizes="(max-width: 550px) 100vw, 550px" /><figcaption>Version Build Tool</figcaption></figure>



<h3 class="wp-block-heading">Create the Pipeline</h3>



<p>Below is my fully functioned YAML file, I will be explaining all the tasks here.</p>



<script src="https://gist.github.com/SibeeshVenu/a882961e72cb5651b581ca50bd56d79a.js"></script>



<p>To start with I wanted to make sure that my build is manual, so I started editing my YAML file as follows.</p>



<script src="https://gist.github.com/SibeeshVenu/6bb0a20435a217cd04ada17d7c675b74.js"></script>



<p>As I was mentioning before, we wanted to make sure that the version number of our app releases are different, thus I assigned the name property as below.</p>



<pre class="wp-block-code"><code>name: $(MajorVersion).$(MinorVersion).$(date:yy)$(DayOfYear)$(rev:.r)</code></pre>



<p>Do you remember that we created a Variable Group and now it is the time use it.</p>



<script src="https://gist.github.com/SibeeshVenu/a0202c1a349cba1f17cbb92c8c228f0f.js"></script>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Please be noted that you must use the format -name: &#8220;&#8221; value: &#8220;&#8221;</p><cite>Tip for Pipeline Variable Configuration</cite></blockquote>



<p>Once this is done we install all of our Nuget Packages. This is something that  we do for all our pipeline thus I am not going to explain this task.</p>



<p>Now it is time to <strong>download our certificate</strong> from the secured files. To do that we need to add the task below.</p>



<script src="https://gist.github.com/SibeeshVenu/d42ff3a522d2f31c8c739116863f7398.js"></script>



<p>As you can see that we use the variable signingCert.secureFilePath to locate the secure file. Please also be noted that the name property, we will be using this in upcoming tasks. </p>



<p>As we downloaded the certificate already, now it is time to <strong>install our certificate in our agent</strong> so that we can do the package siginin. </p>



<script src="https://gist.github.com/SibeeshVenu/98c83c323b825bfb0ddfa31a002892df.js"></script>



<p>Did you notice that we used mySecureFile.secureFilePath to get our certificate and the password from the variable? </p>



<p>Once this is done, we can add a task to automatically increase the build number of our artifacts. Remember that we installed a package to do so? If not, please consider read this article from the start again, just kidding!.</p>



<script src="https://gist.github.com/SibeeshVenu/60148b868f6d9ff94e375fed5ff72f2a.js"></script>



<p>As we have a UWP application, we should use the task Version APPX manifest, please remember that the task names are different for the other types of applications. This task will update the related environment variables.</p>



<p>Now let us add a task to <strong>build our application</strong>.</p>



<script src="https://gist.github.com/SibeeshVenu/d63f64a610021a6938b5b403aedd739f.js"></script>



<p>Please be noted that these build arguments.</p>



<ul class="wp-block-list"><li>p:AppxPackageSigningEnabled=true</li><li>p:PackageCertificateThumbprint=&#8221;$(signingCert.thumbprint)&#8221;</li><li>p:PackageCertificateKeyFile=&#8221;$(mySecureFile.secureFilePath)&#8221;</li><li>p:PackageCertificatePassword=&#8221;$(signingCert.password)&#8221;</li></ul>



<p>These are the settings that you need to enable to do the build signin.</p>



<p>So far so good, as per the weight of your application, the build task can take longer than expected. <strong>Please keep in mind that the default timeout value of the Azure DevOps pipeline is 60 minutes</strong>, so if your build is taking more than an hour, then your build will be failing.</p>



<p>Once the build is successful, we can <strong>copy and publish our artifacts</strong>. Are you ready?</p>



<script src="https://gist.github.com/SibeeshVenu/4be7923b104a7d0661267f1c2414886e.js"></script>



<p>Yay!. We are almost done. I was facing an issue as &#8220;Ask the app developer for a new app package. This one isn&#8217;t signed with a trusted certificate (0x800B0100) &#8221; when I try to install the application after downloading the application from the app center.  And <a href="https://github.com/damienaicheh/UWP-Pipeline/issues/1">this GitHub post</a> helped me to fix the same. </p>



<p>So as a fix, I had to upload the entire artifacts to the app center instead of the APPX file alone, to do so, we have to create an Archive task as follows. </p>



<script src="https://gist.github.com/SibeeshVenu/e04889e0ff003215e98d0e20cc1cb984.js"></script>



<p>So now we have our complete artifacts ready to <strong>upload to the app center</strong>. Let&#8217;s create the task for that. Below is my task, I will explain the inputs needed for this task.</p>



<script src="https://gist.github.com/SibeeshVenu/1348ea35f0502a65997d0224eb9715c9.js"></script>



<p> Before you add that task, make sure that you get the values for the below inputs. </p>



<ul class="wp-block-list"><li>Server End Point</li><li>App Slug</li><li>Distribution Group Id</li></ul>



<p>Now let&#8217;s get these values. The server end point is the name of the connection that you should create. You will be asked to do this while you add the App Distribute Task to the YAML file. Please make sure that you have enough permission to do so.</p>



<figure class="wp-block-image"><img decoding="async" width="660" height="434" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/App-Center-Connection.png" alt="" class="wp-image-13943" srcset="/wp-content/uploads/2019/11/App-Center-Connection.png 660w, /wp-content/uploads/2019/11/App-Center-Connection-300x197.png 300w, /wp-content/uploads/2019/11/App-Center-Connection-425x279.png 425w" sizes="(max-width: 660px) 100vw, 660px" /><figcaption>App Center Connection</figcaption></figure>



<p>You should also need to create an API token in your App Center to create this connection, you need to go to  <a href="https://appcenter.ms/settings/apitokens">https://appcenter.ms/settings/apitokens</a>  and then click on the New API Token button.</p>



<figure class="wp-block-image"><img decoding="async" width="649" height="283" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/API-Token-in-App-Center.png" alt="" class="wp-image-13944" srcset="/wp-content/uploads/2019/11/API-Token-in-App-Center.png 649w, /wp-content/uploads/2019/11/API-Token-in-App-Center-300x131.png 300w, /wp-content/uploads/2019/11/API-Token-in-App-Center-425x185.png 425w" sizes="(max-width: 649px) 100vw, 649px" /><figcaption>API Token in App Center</figcaption></figure>



<p>Please make sure that you give Full Access when you create the API Token.</p>



<p>The app slug is in the format of <strong>{username}/{app_identifier}</strong>.  To locate <strong>{username}</strong> and <strong>{app_identifier}</strong> for an app, click on its name from <a rel="noreferrer noopener" href="https://appcenter.ms/apps" target="_blank">https://appcenter.ms/apps</a>, and the resulting URL is in the format of <a rel="noreferrer noopener" href="https://appcenter.ms/users/%7Busername%7D/apps/%7Bapp_identifier%7D" target="_blank">https://appcenter.ms/users/<strong>{username}</strong>/apps/<strong>{app_identifier}</strong></a>. If you are using orgs, the app slug is of the format <strong>{orgname}/{app_identifier}</strong>.</p>



<p>When you are uploading the artifacts in the zip file format, it is mandatory that you should provide the build number in the task, otherwise you will get an error as &#8220;<strong>Job:</strong> &#8220;&#8221;{\&#8221;status\&#8221;:\&#8221;error\&#8221;,\&#8221;message\&#8221;:\&#8221;Version could not be created from build.\&#8221;}&#8221; http response code: 422&#8243;&#8221; in the pipeline. So to fix this we can add the input <strong>buildVersion:&nbsp;&#8216;$(Build.BuildNumber)&#8217;</strong></p>



<p>And then I set the appFile as the archive file task output.</p>



<p>We usually have many people in out projects, and if the project is a critical ones, the number of people is more. But most of the cases, all of them will not be developers, some might be testers and some may be business people. So isn&#8217;t it a good idea to have a group of people to whom we can send notifications to, whenever we have any new releases, these can be Testers, Developers, Business etc. Luckily App Center has this feature of Groups. I created a Group called Testers and then I used this Group in my pipeline, to make sure that the notifications are sent only to these members. </p>



<p>To create a group, Click on the Groups in the App center and then create one, once it is created assign the members. Now you can click on the settings button of the group and get the Group Distribution Id, which we will use in the pipeline.</p>



<figure class="wp-block-image"><img decoding="async" width="1024" height="247" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/Get-Group-Distribution-ID-in-App-Center-1024x247.png" alt="" class="wp-image-13946" srcset="/wp-content/uploads/2019/11/Get-Group-Distribution-ID-in-App-Center-1024x247.png 1024w, /wp-content/uploads/2019/11/Get-Group-Distribution-ID-in-App-Center-300x72.png 300w, /wp-content/uploads/2019/11/Get-Group-Distribution-ID-in-App-Center-768x185.png 768w, /wp-content/uploads/2019/11/Get-Group-Distribution-ID-in-App-Center-425x102.png 425w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Group Distribution ID in App Center</figcaption></figure>



<p><em>Please do not forget to update the values of <strong>appSlug </strong>and <strong>distributionGroupId </strong>in the Pipeline Variables</em>. </p>



<p>With this we are done with our configuration. </p>



<h2 class="wp-block-heading">Run the Pipeline</h2>



<p>As we have successfully configured our pipeline, now is the time to run the same. If everything goes well, you should be getting an output as below.</p>



<figure class="wp-block-image"><img decoding="async" width="1024" height="503" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/Pipeline-Build-Output-1024x503.png" alt="" class="wp-image-13947" srcset="/wp-content/uploads/2019/11/Pipeline-Build-Output-1024x503.png 1024w, /wp-content/uploads/2019/11/Pipeline-Build-Output-300x147.png 300w, /wp-content/uploads/2019/11/Pipeline-Build-Output-768x377.png 768w, /wp-content/uploads/2019/11/Pipeline-Build-Output-425x209.png 425w, /wp-content/uploads/2019/11/Pipeline-Build-Output.png 1634w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Pipeline Build Output</figcaption></figure>



<p>Now let us go to our app center and see the new release.</p>



<figure class="wp-block-image"><img decoding="async" width="1024" height="365" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/Release-App-Center-Output-1024x365.png" alt="" class="wp-image-13948" srcset="/wp-content/uploads/2019/11/Release-App-Center-Output-1024x365.png 1024w, /wp-content/uploads/2019/11/Release-App-Center-Output-300x107.png 300w, /wp-content/uploads/2019/11/Release-App-Center-Output-768x274.png 768w, /wp-content/uploads/2019/11/Release-App-Center-Output-425x152.png 425w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Release App Center Output</figcaption></figure>



<p>Now you can download the file and install your application. If you extract the files, you should be able to see all the related files inside including the certificate.</p>



<figure class="wp-block-image"><img decoding="async" width="859" height="408" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/App-Center-File-After-Extracted.png" alt="" class="wp-image-13949" srcset="/wp-content/uploads/2019/11/App-Center-File-After-Extracted.png 859w, /wp-content/uploads/2019/11/App-Center-File-After-Extracted-300x142.png 300w, /wp-content/uploads/2019/11/App-Center-File-After-Extracted-768x365.png 768w, /wp-content/uploads/2019/11/App-Center-File-After-Extracted-425x202.png 425w" sizes="(max-width: 859px) 100vw, 859px" /><figcaption>App Center File After Extracted</figcaption></figure>



<p>Now all you have to do is, to double click on the APPXBUNDLE file to install the application.</p>



<figure class="wp-block-image"><img decoding="async" width="1024" height="651" src="https://sibeeshpassion.com/wp-content/uploads/2019/11/Install-the-App-1024x651.png" alt="" class="wp-image-13950" srcset="/wp-content/uploads/2019/11/Install-the-App-1024x651.png 1024w, /wp-content/uploads/2019/11/Install-the-App-300x191.png 300w, /wp-content/uploads/2019/11/Install-the-App-768x488.png 768w, /wp-content/uploads/2019/11/Install-the-App-425x270.png 425w, /wp-content/uploads/2019/11/Install-the-App.png 1300w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Install the Application</figcaption></figure>



<h2 class="wp-block-heading">References</h2>



<ul class="wp-block-list"><li><a href="https://damienaicheh.github.io/uwp/azure/devops/appcenter/2019/09/24/build-sign-and-deploy-your-uwp-application-using-azure-devops-and-appcenter-en.html">How to build, sign and deploy your UWP application using Azure DevOps and App Center</a></li><li><a href="https://docs.microsoft.com/en-us/windows/msix/package/create-certificate-package-signing/?WT.mc_id=DT-MVP-5001828">Create Certificate</a></li></ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Thanks a lot for staying with me for a long time and reading this article. I hope now you have learned</p>



<ul class="wp-block-list"><li>about creating a certificate for your UWP application</li><li>about Azure DevOps Variables</li><li>about Azure DevOps secured files</li><li>about siginin the UWP package in the Azure DevOps pipeline</li><li>about building the UWP application</li><li>about archiving the build artifacts before uploading to the app center</li><li>about configuring the distribute app center task in the Azure DevOps</li><li>about automatically updating the version number of your UWP application release</li></ul>



<p>If you have learned anything else from this article, please let me know in the comment section. </p>



<h2 class="wp-block-heading">Follow me</h2>



<p>If you like this article, consider following me, ha ha!.</p>



<ul class="wp-block-list"><li><a href="https://github.com/SibeeshVenu">GitHub</a></li><li><a href="https://medium.com/@sibeeshvenu">medium</a></li><li><a href="https://twitter.com/sibeeshvenu">Twitter</a></li></ul>



<h2 class="wp-block-heading">Your turn. What do you think?</h2>



<p>Thanks a lot for reading. Did I miss anything that you may think which is needed in this article? Could you find this post as useful? Kindly do not forget to share me your feedback.</p>



<p>Kindest Regards<br>Sibeesh Venu</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sibeeshpassion.com/uwp-application-singin-release-distribute-deploy-with-azure-devops-pipeline/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
