Mobile DevOps with Visual Studio App Center | Eduardo Rosas | Skillshare

Playback Speed

  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

Mobile DevOps with Visual Studio App Center

teacher avatar Eduardo Rosas, Software Developer. Finance YouTuber.

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

5 Lessons (1h 25m)
    • 1. Enabling Coninuous Integration

    • 2. Android Continuous Delivery

    • 3. iOS Continuous Delivery

    • 4. Continuous Delivery to the Play Store

    • 5. Continuous Delivery to the App Store

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels
  • Beg/Int level
  • Int/Adv level

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.





About This Class


In this class, you will learn to setup CI/CD (Continuous Integration and Continuous Delivery) for your Android and iOS applications.

This will be done through Microsoft's Visual Studio App Center, by using GitHub for our remote source control repository.

We will be able to automatically trigger builds that generate APKs and IPAs every time new code reaches our master branch, and to automatically trigger distribution of this builds directly to our users through App Center itself.

Meet Your Teacher

Teacher Profile Image

Eduardo Rosas

Software Developer. Finance YouTuber.


I am a Software Engineer and Xamarin-Certified Mobile Developer.

I have been developing mobile apps for 7 years now, I started when iOS 5 had just been released!

During this years I have created apps for clients, both for private use and for public use. I have created some apps that I wanted to release to the app stores, and have created a lot of apps just for fun. The main platform I use is Xamarin, so I can code Android, Windows, iOS and macOS apps using my favorite language: C#.

I have helped literally thousands of students to learn how to code, both online and in-person, and it has become my passion.

I also love to design apps, whenever I get a little bit (or a lot) stressed when coding, I design apps, either out-of-the-blue concepts, or the next app... See full profile

Class Ratings

Expectations Met?
  • Exceeded!
  • Yes
  • Somewhat
  • Not really
Reviews Archive

In October 2018, we updated our review system to improve the way we collect feedback. Below are the reviews written before that update.

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.


1. Enabling Coninuous Integration: so this video series ease for those of you mobile developers who want to be more efficient when delivering value to your users do serve you wanted ever volume or quickly and without having to do ah lot of manual stuff. Now, while in this small Siri's I am going to be using Sam Marin, this steps are actually going to be very similar to react native developers and native android, a native IOS. The reason why I'm using submarine is both because that is the tool that I use the most. And because hammering will allow me to create both android and IOS abs so I can show you the steps for both platforms. But if you are not a simmering developer, yuk unjust is beef through these steps that are Samarinda specific on do you know, jump over to where I'm starting to use app center, which is going to be the tool that I will use to enable continues. Integration continues delivery. So of course, because this is going to be summering, then I am going to be starting with a brand new project. So we're starting from the ground or being here I am a greeting a a blank forms application . This is going to work for both Android and IOS. Let's just call this Dev Ops example and I'm going to click next and click and create. Now notice that by default this is already using Get a version control that is going to be hell for because it is going to initialize Atget repository for my code. Now the coding here is actually not important. All you really have now is a label in some application in some window. In some patient here that is not important. What I want to show you is how I said that we will be able to connect this over to up centers. We can enable continuous integration. So there are a couple of tools that we're going to be using here. The 1st 1 is going to be get help, but feel free to use other source control or other remote repository for your local git repositories. If you use big bucket, dad will work as well. I will use get hub for the scenario. And of course, the first thing that I have to do is create the remote repository that is going to hold all of my code over in the cloud in this case, over on get hub. So I am going to be calling. This is the exact same way that is going to be develops. Example. These commie public or private I'm just going to be making this private. It's not very cool project. It's just an empty project. And what I want you to notice in here is that I already have absent early sitting here. It's may be the case that that you do not see this option. That is fine. But in case you do cities option already feel free to selected already because that he's actually going to make things a bit easier. Now I'm going to show you the entire process, even if you do not say this option in here, so I won't be selecting it. And instead I'm just going to be creating the repository. Of course I am going to grab the repositories. Your l and I want to use a terminal to push my local repository over to the cloud. So we just meaning here into my terminal and CD into the project that I have just created, which, if I'm not mistaken waas created in hearing Did I can city into develops example and as you can see, visual studio in my case has to really initialized the repository ive it wasn't initialized . I could just execute getting it. But since this has already been initialized or I have to do is are the entire code base over to the git repositories to eighties now being tracked. And I will just commit all of the new files as an initial commits you here. And since now everything is locally on the kid repository being correctly tracked, I can now just bush everything over to my new get repository. So for that, the first thing that I have to do ease atthe the remote, so get remote at origin and just based the your origin in these cases, just the most common name used. Forget her repository, feel free to change that naming. But now that I have this remote I can execute, gives Bush dash you. Now these that's true is not necessary. But it is going to be very helpful and just origin, which is the name of my remote and master, which is a name off the default branch that gets created. So after just a couple of seconds, if we never get back to get Herb, we should already seal of that Cody here. Now, by now, maybe you already knew how to do all this. We haven't done anything related to Mobile De Bob, Juicy at all we have done is pushed. Brand new summer informs project over to a get help repository that, as I mentioned, is going to contain both the IOS and Android applications. Now the interesting thing and the war related to develops starts now, so we're going to be using APP Center. This is a tool like Microsoft that makes it really easy for us mobile developers to not only implement continues integration and continues delivery, but also continues testing or continues quality as they like to go. It and some other very need features, such as push notifications and databases and user authentication and even things like book tracking, an event tracking, which is very carefully if you're doing some sort of product discovery. But let's just focus on the mobile develop sparred. The first thing that you will, of course, have to do is create, and you account now you can navigate over to AP Center that demands angry. Your account would have variety off services, for example, get help itself or Microsoft account, you know, and I would look account Hotmail account a de email, Facebook. So just go ahead and create your free, absent or account, and you should be ready to navigate back to get harder because of their own. Get hard, we're going to navigate over to the marketplace. And in America, plays were good. Researching for ab center and up center is going to be at least that right here, and we see a couple of options for some reason. But the one that we're going to be using is thes one that is verified and I will select it . And right now I already have a plan, and but you may have to select. First, I plan to be used with your repository. Of course, there is an entirely free plan that is going to be more than enough for these small Siri's . So feel free to select the free app center plan, and eventually, once you are following this configuration, you're going to see something very similar to this. This thing that I have right here, down below. Now these is actually the least of repositories to which APP center is going to have access to. In my case, I am Onley selecting certain repositories. That is actually what I recommend. Not all of your repositories have mobile applications or not All of them are going to be connecting toe up center. So just normally Glick here on only select this repositories And from this list I am going to be able to find my new verbs. Example Repository. So now, absent Tories, could you have access to these new repository and I will be able to click on Save. That means that app center is now going to be greeting an application based on this repository. Now, as you can see by default, we already navigated here to app Center AB center is now going to prompt us to create those applications based on the repository that we select. Now I have ah long list of repositories in here but of course you will see only does do which you have granted axes to epicenter. So I will select these of ups Example and I will, of course, select Booth I us in an Drood and summer because Daddy's my case. In your case, maybe you're just reading a ny USA. Wrongly, Ananda Replication. Maybe you're using react Native. I don't know that processing here, maybe a bit different, but all we have to do in here is said the name, Select the platforms. We don't even really need to worry too much about the release time right now. So just Glick and create. And as you can see in my case, I have the option to configure both Iris and Android. But actually, by now those two applications or one application if that is your case, we'll be ready. So if we never get over to configure us, I will configure Andrew in just seconds. We're going to be navigated here to a brand new iris application here in APP Center. As you can see, it is even already identifying the master branch that is greeted by default and that we've already pushed over to get hub absent. There is going to be smart enough to identify it from these project, which contains three projects and Andrew in the U. S. And a Darknet standard library from that solution. What process it is going to be building now. In the case of our US, we have to select the solution itself. Although we do see the project for Iris, for some reason, we have to select the solution here. I notice that weekend configure It is to be old asa table configuration released configuration change the sdk version that were using the exclude version that has recently being updated to relive employing one, even the beta version of X code. But the thing that I want you to focus on right now just to quickly enable continuous integration Easy's option right here to build this branch in every bush. These options right here is a one that actually means continuous integration, enabling these option right here. Ease what enables continuous integration. Because if we said this to build manually, that is not really continues integration. We will have to steal Glick manually, some bottom. But if we do some like this one automatically, as we're going to see in just a minute, bills are going to be triggered. And for now, a simulator build. He's moulded enough that doesn't require signing and some crazy stuff that apple requires from us. We don't need to sign the bills, then scenes we're not signing. We cannot do either of these two options, but that it's OK. I will just click Unsafe. Just like that, I have configured continues integration for my IOS application. As you can see, all we really had to do was never gate over to get have said access to a certain repository that we already had and said this teeny tiny configuration here in APP Center. Now, in the case of Android, the process is exactly the same thing. In fact, notice that absent Tories, prompting me to now configure my android build because I have to brought acts inside of that repository. So the an US and the andro product. So it's now never get over to the android application because indeed, APP Center created another application Onley for the Android project. What is that in these gays? It does select the project instead of the entire solution, so that is slightly different. We see seem like configurations, of course, as the case, our entire different ones for us once friendly but still, we have access to a long list off Essick eight versions, and again we see these optioning here to build a branch in the bush. So continues integration is enabled. Now something that I forgot to mention these that I recommend that you automatically in command diversion Cody here something that is going to be helpful in that later video. In these small Siri's book, just make sure that you do some like these buildings branch and every push option. We should be selected by default again. We're not signing a Beals, so deceptions have not enable. So just click on save and there it is the configuration to enable continues integration for both off the applications that I have has been created. Now what exactly happened? Eased at over On my APP center account, a couple applications were created. So Dev ops example for IOS and develops example for Android. So indeed, there are a couple of applications that we will have to manage in the scenario. If you're only working with andro or only working with us, you will only have one both for react. Native developers, Semmering developers. We will have a couple of them one burp laugh room and by the way, let me just never get over to the iris application and let me just assume back under beds who can show these options to left and show you Dad's off that configuration Wasdin directly on the build tab. We were automatically navigated here, but we can always go back. So here in the bill tab, we see the branches that we have and we can configure the build. And I am going to make sure that I automatically increment the build number, as I did for address well and safe. So now that I have continues integration set up, let me show you that that is indeed the case, something that we gave back to get Hub. And I am going to be opening my develops example repository again, and I am going to be making a small changing here. In fact, let me do directly from the I. D. E. I am going to be opening the main beige dot sammo file, and I am also going to be opening the terminal because I like to work with get in the terminal a little bit better than with visual studio. So the first thing that I want to do East creeds, a feature branch so I don't normally work directly on the master branch. I create a future branch warehouse and name suggests I wore the number together feature. So I am going to executed you. Check out that be to create a new branch, that he's going to be just feature one or something like that. And now that I am a feature one, of course, everything that I do over in visual studio will Onley excess means head of that branch. For example. What I can do is change the text that is being displayed instead of these labels currently just welcome to summary forms. Let's change this to B. Welcome to they're Baaps. Example. Something that's a very teeny tiny change in North for our feature. One branch to be ready. It's now if I never get back to the terminal, I can commit this change, of course at it and at the message as well. I can do it with justice, quick commands and just say that they says feature one ready just these tiny quick feature . And now that I have featured one ready, I would want to merge it into master. But normally we want that to happen directly from get hop, not from our local git repository. So that is just so we can use bull requests. So what I will do is just push everything. They don't need the EU flag in this case, everything to a regime from feature A one. So now the origin remote over on Get hub contains both the master and the feature one. What I was mentioning is that I want this to happen because I want to create a full request to merge into master. So we're going to be creating a pull request to Merce feature one into master. I will just click, can create the pull request and as soon as the pull request is created and let me just wait a couple of seconds here, notice two things that happening here, one thanks to the process that we followed off, creating the applications over an app center directly from get hub. We see these couple of things. So it turns out that checks have been added to our poor request over in the Czech stab, we see that we're waiting for android build and in Iowa's build. So these checks are letting us know whether or not the co that he seems had a feature one will actually build before we actually merge into master. Now we can actually leverage these feature Ali bit more. But when I want to show you is really the continues integration process taking place if we never get over to up center and over to either of our applications and select build and select the master branch, notice that automatically a full regressed build waas triggered again. We haven't really merged into master us yet. This is just a pull request. But because we are intending to merge into these branch a full request bailed It's triggered And this is true for the IOS as well as for the android applications. We never get over to the Andrew application over To be able to never to master. We see that build as well automatically triggered now again these east a build that was triggered when the pull request was created. Bullet me show you something else because these bills, all they do currently are acting us checks. And as you can see, one of them has been successful and we see that information from our center updating information right here on the gift of repository But these checks are not really the build itself that would in the raid the I p. A or the A B K files for projects. What would generate those files is the build that would be triggered once new code actually reaches Master. Currently, the feature one is no general master. So and by the way, notice that the two checks have now succeeded. So I can just go hand Mirzapur request and it's in the same merciful request on that can. Actually they lead the feature one branch and navigate back, toe up center noticed, and a different kind of build has been triggered. These is the main build on automatic, billed as it reads right here. These one again is triggered every single time new code reaches my branch north on the pull request. But after the emerge or the push of the code or the commits of new code into these branch, these build right here, the one that has triggered ones there Merge has being completed. He's the one that will generate the a big a file in the case of Android and the I p. A file. In the case of IOS, as you can see right here in these, both applications have triggered the corresponding bills. First you can see it is very easy to enable continues integration using up center. Now I understand there are a couple of things here and there that maybe a little bit overwhelming, but really, the purpose of visas more video was to Jaws get continues, integration enabled further down in these small Siri's we're going to talk about How is it that we're going to be using these bills because currently we're just building. We're not really doing anything with the i p A, r I p k. And of course, in the process, learn that have been more about these configurations for continues integration and eventually continue delivery. 2. Android Continuous Delivery: All right. So welcome back to the small Siris on Mobile Dev ops using Microsoft AB Center in the previews video, we were able to push our local knew severing projects. But I mentioned how this is going to be the same for Android or IOS or even react native over here to get harbor and get Hubble created this bull request to merge some new functionality that we coated into the main branch. And because of how we could have figured things these blue request waas able to generate automatically a couple of builds. The first build was actually generated as soon as the pull request WAAS created and these couple of checks were added here and get home as well. So over on ab center, we have these couple of applications connected to that get her repository. So if we never get to either of these IRS or Android applications and over to the build and over to the only branch that we currently have as soon as we created the pull request and these bull request build waas triggered, which was the one that was updating and the chance of a hearing the pull request now, as soon as we merged the pull request into in this case, the master branch. These automatic Beeld was trigger. However, that is everything that were completed in the previous lecture. So far, the a, p K and I be a files. I would be generated ones thes build east, complete We're in distributed. So in these video and in the next one, we're going to be you focusing on continues delivery in these one. We're going to be focusing on Android. So sorry to you, IOS developers, you're going to have the way for me to show you how to configure IRS distribution for android Overview. Andrew developers, summering developers, react, native developers. These video interests you because the a p a. And right now I am the Indiana's application. But if I navigate over on the other application, we have the exact same thing. We have these automatic bill that would have generated on a big A file, which means that we are now able to start distributing that a big A file, which is exactly what we're going to take a look at in these video bought over here in that centre, focusing on the added replication, the first thing that you will have to do is navigate over to the distribute to have and set a new group. So we're going to be able to do through APP Center Is this tribute application to, for example, like group off testers, for example, are beta testers or the group of quality assurance? They call it the Assurance Team, for example. And we can do that directly through up center without having to go through the APP stores. Of course, which is exactly how we're going to be these two eating in these video. So here in the distribution groups, I am going to be adding precisely my Beta testers group and here I would be able to have those testers. Now I am going to be adding a history here that he's going to be myself so I can show you the testers signed how I said that they will be able to access this application and eventually, But of course, you can add as many emails as you want. So I'm going to be adding my 10 days off Semmering that block emailing here, and I am going to be creating the group just like this now By now, these tester would have received an email with the invitation to access this particular application. However, currently, we have no releases. So my tester doesn't have access to any release your stance. So to distribute a new release and enable continue delivery. We never gave back to the build and we grew figured this build. Now keep in mind that currently we only have one branch balls. In an ideal scenario, we have a particular branch at test Branch that these tributes to the testers and then the master branch is just for this treating to the APP stores both. Since we only have one brand, we're going to be using these. Same one. Now, the first thing that I want to doing here has changed the configuration because I no longer am and the bogging the application. I I'm already releasing it. So I am going to change the configuration over to release and like this. If I go down in this configuration, we're going to find the option to distribute the bills directly from the same configuration in the same blade where we configure continues integration by selecting this option in here we have the option to enable continues delivery by enabling deception. However, of course, as it reads right here, Onley Scient bills can be distributed and wrong on devices. So this is something that Google and all of your android devices are going to require. The bills have to be signed for day to be able to run on that device, so that option to sign is right here. Well, we have to do is enable it and provide AKI store file as soon as we provide a G star filed , they build that he's generated just as we saw in the previous video is finally going to generate assigned a PK and that a B K can be installed on devices. So before generating the key store filed me show you that indeed, just by enabling sign bills, we can. Now this tribute does beholds And what is that in here? We're going to have groups and store again. The story is not something that we're going to be doing in this video, but the process is going to be pretty much identical. You just elect where you want to distribute. Of course, for the store, you're going to have to do some other stuff over in the play store and configure the Aikins and configure the screen shells and so on, but eventually just connected over here to up center and selected, Similar to how Right now we can select these in beta testers groups, and that's it. And what is interesting about this is a soon as there is a new release available that can be done automatically will continue delivery. Our users are going to be notified about it. We can choose not to notify them, but they're going to receive by default on email, letting them know that a new version of the application has just been made available. That is just amazing. So now we have these continues the delivery enabled, but we do need in these keys or file. So as we head and created so degree the key store file, I will actually have to navigate over to the terminal. So I have here my terminal and, of course, and windows. It would be the command line, but basically you're going to have to execute in the Key Tool Command that he's now going to be available on your computer because you have the Jaffa as okay? Of course. Since you have been developing Andrew applications, that means that you have. Yes, OK, the JV Cain stole. So you can use Keitel. If you do not have Jeff installed, you cannot use this tool. But I am assuming that you already do. Because you have been developing for Android. Now, the key tool is actually going to require a few flags begins in the raid. These keys door file correctly. The 1st 1 is going to be just what he said that we're going to be in generating and when we're going to be generating is a key pair. So we just passed this and the details of each and every one of the flags are not important . Just make sure that you do pass all of these flags of the V flag key store, which is exactly what we're going to be generating and exactly where these key story is going to live. Now I want my key store to leave on the desktop. Just release easy to access. But keep in mind that these key store file we'll only be generated ones. And as soon as you use it to sign your epic a that is a key store final you have to use always. So do not lose this file because if you lose it, you won't be able to update that a PK correctly. So I will just said they're stopped for the moment and I am going to assign a name to Mike Easter. In these cases, just Dev ops example and dawned a key store. So the name is not important. The extension is important. Make sure that it finishes on dot key store. I am also going to be sitting on Alias, which notice is one of the things and that eventually absent there is going to require he's going to require three things. In addition to the file itself the key store password, they keep password, which we will set in just a second and the key alias. So the alias that you said over here in the terminal, through these flag, you should never forget it because it's going to be required every single time that you want to use this key store again. I am just going to use develops example again, and then we're going to be using some algorithm to generate these particular file set some size, which I normally set to to any 48. And for how long? This is going to be valid. Normally, just add it to 10,000. So this is valid for a long time. And here is the second of the things that that were going to be required in addition to the alias the key store passwords. So just set a password in here confirmed by his work. And then these program is going to ask you a few questions. You really only need to answer at least one off this. You do not need to answer all of them. As long as you answer at least one of them. Everything is going to work correctly. So I'm just going to be answering what is my first and last name. And the other ones I'm just going to breast enter until these one right here This summary of the information that I have just passed I am just going to type. Why? For yes, enter and here we're going to be required The key password different to the key store password. Now I can just return If I wanted to be exactly the same, must accused your password. Feel free to do that, But keep in mind that these had two different passwords. If you do set them differently, you will have to remember them both. So by now I should already have in that key store file on my desktop so I could absent, they reckon, just navigate over to test off, Select the file Clicking open and I'm Blow Jobs passed information that I have just set the keys, their password, the aliens and the key password, which again may be the same as a G store password. And that's it. We're now going to be able to save everything now. Currently, no distribution has been made because the bill that was already there Wasin Jin the rates in releases show, she adds, bought from now on. Every single new build which remember that has already been triggered automatically through continuous integration, is also going to trigger that release so continues integration is going to be triggering continues and delivery. So let's take a look at that just so we trigger these new BL, which he's going to finally includes continues delivery. I am going to make a teeny tiny change of a hearing get hub. Of course, Normally you would make these changes directly from the I. D. E. In these days, I am going to be doing it directly from get harbor to seal. I am going to be following the normal process nor the normal flow that your team may flow, which is to first create a feature branch. So this is going to be my feature to branch. I believe we have already used feature one and once I am on featured two. I can just make it any tiny change doesn't even have to do anything with your application itself. Perhaps I'm just going to be adding a really filing here. It is not even really good. You have any details inside? All I really need is something different in these feature branch, then on the main branch, the master branch, so that I can create Apple Request. Now we already know that as soon as we create the pull request, this is going to trigger a build that is going to be abating. These couple of checks that exist right here instead of the pull request, however, and that field that we should be able to see right here right now. It is not jet triggering any releases. These is just a pull request build. It doesn't generate any file that will eventually be able to be installed on devices. That is something that only happens on the automatic builds. So for now, we will have to wait for these poor request to be completed. We should update successfully. These couple of checks hopefully fingers crossed. And as soon as he's shanks have been successful, that means that the build was successful. That means and that we can merge this pull requests and let me just wait a couple of minutes off course. You don't have to wait anything because through the magical video, these checks succeed very quickly. So again, that means that also, these build has exceeded over here the pull request field, so I can merge in the pull request. Now, these one, these new change instead of the pull request after we actually marriage, which, by the way, means that we can believe these feature to branch. He's the one that triggers the automatic build and it is these automatic bill that one that is also going to be triggering the distribution. So a few things are going to happen. Of course the build is going to be executed and jaws to see the Watts before because of the continuous integration set up that we have. However, as soon as the Beeld succeeds, remember that by then it should have recreated an A P. K file that would now be signed because we have said the keys door file information here on that center that signed a BK would be. These tributes said to the group that we just sat and the distribution itself is going to trigger a couple of things first. Our testers, our group, are beta testers. Group is going to receive an email letting them know that a new release has been made available. Bought, most importantly, our users, these beta testers wouldn't now have access to that new build in the case of Android, the hbk file. So let me just wait a couple of minutes for these Beal to succeed and show you how I say that our testers would be able to install the application. So here it is. The build has just succeeded. Now let me show you what this has triggered over here on this Andrew Device. As you can see, a have a couple of emails. The 1st 1 is the one that I mentioned before the one of these. Just inviting these person to test a particular application in this case, our develops example application for Android, the one that we're focusing on right now. Now, instead of these email, of course, your users will be able to click on view app now. At first we didn't have any releases, so the leaves that were about to seeing here would have been displayed empty. But of course, scenes, thes brand new release has just been created. We see it right here, and we already see these download repulsion. However, before I do click in these download Bolton, let me show you bag on these email a client that these beta tester also received these update that a new version off develops. Example. He's available. So every single time that a new version of the application he's made available, your users will receive these notification on their emails. Let's navigate back to our browser where we were already seeing these first release because this is android. We know that all we have to do is click on download. The AP is going to be downloaded and of course, depending on the O. E M. We're going to go through a different process authorizing the A P K to be installed. But in these cases I have to do is click on install klieg install anyway because it says that play protect is blocking. There's because this is not jet from the store, but I will be in stole it Anyway. The APP has been installed weekly can open and here we have the first version off her very simple application. The application does absolutely nothing but there it is. These is how your users would be able doing stole an application. There has been these trippy Ted automatically through continues delivery. Now these is very powerful because thes was all triggered automatically by a full request off course. First, we have to configure this the build of a hearing up center. But we configure that Onley ones now every single time that newco the reaches the master branch through a pull request, hopefully But that could also be done through a push from a local repository or throughout commit or something like that whenever a new code reaches the master branch. Well, we know that a bill these going to be triggered and the build is not only going to be generating the A b K, but it is now also going to be signing it with a key store that we just said and that sign a BK will now be distributed so excellent in the next video producer view interest that we're going to be doing the same thing for Iot as the processes is slightly different because I police a little bit more complicated to deal way the way it comes to installing applications and devices both for those of you IRS developers, summering developers, react, native developers. The next video we're going to be covering how to do this. 3. iOS Continuous Delivery: Hello and welcome back to these mobile dip up Siris in these video, we're finally going to be this treaty Are Semmering application to IOS devices Now again, I'll be using summering just because it allows me to build for both Android and IOS at same time. But this is going to be exactly the same for those of you native IOS developers and react native developers when distributing the iris application. So so far, we have already distributed the android version of the application. That is what we covered in two previous video. We're going to be doing something very similar for IOS. So we're going to be creating a distribution group and we're going to be distributing directly through APP Center. So what I will do first on for movies, navigate over to the IRS application here in APP center. Now, remember that by now we already have the code over on a kid have repository, but I'm using get Haba do repository could be somewhere else. For example, bait, bucket and abusing some bull requests that we've really noticed automatically generate some built. So this is continues integration. We already have continues integration working here on these IOS application. The next step, of course, East to enable continues delivery and similar to what we did in Andrew with everything is going to start over on the distribute tab by greeting a brand new distribution group. So again, we're going to be using APP Center to distribute the applications to, for example, beta testers. So least of people that we know we perhaps have their email address or we know how together application to them. So not exactly our end users, but perhaps someone who can help us test your application. And that is exactly what I'm going to be greeting in here in France. I am going to be adding a group that he's going to be gold beta testers, and the only thing that I want to do in here east add an email. Now I am going to be using one off my emails. But of course, you here you would be able to add as many emails as you need. So my 10 days of summer in that block Emily here and simply create group now buy these time off the beta testers or, in this Inara vigils, one better serve myself would have received an invitation to start testing my develops example for iris application, which is where I have just read to the distribution group. But of course, by now they wouldn't see in the release because we haven't created any release. Eventually, though, they will receive also identification every single time a new release is made available. So that is exactly what we're going to be doing now. Greeting on your release. However, on Iris, there is an additional very important thing to do, and that is to reuse toe devices. It turns out that when we create an application, Apple is going to be very wary about who could in stole that application, because we don't want a bad developer creating some malware and making it available for everyone to install. So Apple makes it a bit harder for roles to install our application on certain devices. We actually have to know what devices are going to be ruining our application. Now that can be a bit tricky because we may not have contact direct contact with Ilovar beta testers. Perhaps all we do is have their email address. Thankfully, absent ER makes it very easy for us to raise toe those devices. So notice he here in the beta testers group over on the devices Tab, ease these configuration. Kind of I can over here to the top. Right? He here we can enable app center or the beta testers distribution group in this case to automatically managed. And the devices these East key. If we do not enable this, other users wouldn't be able to run our application both as soon as we hear select our apple developer account. Off course we have here the at account Boston. So we can add our apple developer account and eventually select the certificates. Once we have that app center is going to manage everything for us now. Everybody connected my apple developer account. It does show as invalid, so I will have to reconnect it. But once I do that, I should be good to go. Of course, in UK, your occasionally have to click at account instead of reconnect. Once you have your apple developer account, the next step is to select a certificate. Now, I already have some certificates in here, but of course, let's create it from the ground ob so we'll never get over to developer that apple dot com And here we're going to have to navigate over to our account off course. That means that we will have to sign in with the same account that we just connected over to up center and then navigate over here to certificates, identify ours and profiles, and we're going to be greeting that certificates that we're going to need. So we hear simply click on AF and select that you want an apple this tribute shin certificate. So notice that they re salsa and apple development certificates. That is something that you would use the viewer in the development process. Right now, we're already distributing our application. So we want to greet an apple distributions that the ticket now, just in case you might still be using X gold 10 or earlier, which by this time may not be the case of anyone with just in case you will have to select our US distribution instead of apple distribution. Just keep that in mind. But if you're already using, exclude 11 or later select apple distribution, click and continue and you're going to have degreed Osias, our file. Now, the CSR file is something that you can only create directly from your Mac, you'll have to open the teaching access application that exists inside of your Mac again. This is why it is entirely require that you use a Mac for this process and never get over to the teaching access menu here to the top left, select certificate assistant and select. Request a certificate from a certificate authority, then simply select save to disk clicking. Continue click on Save and the CSR file would have been creating on wherever place you selected. In my case, that stop so about here on the certificates had into fires and profiles. Who can select that file? In my case, go over to the test up. Select the file Click on Open Anchalee can continue. These will allow you to agree the certificate and notice that we can now download their certificate. However, this is currently a C E R file. That is not what we have to go bloating here. If you select, please select Apple Certificate and click on that certificate. Notice that it requires a beat well file, not a c E r file. So what we'll have to do is click undies file that CEO are filed the hazards being downloaded which would install the file on our teaching access. So open the key chain access again and never get over to my certificates in here. You're going to find a certificate that expires a year from now. So if today is November 6 2019 I now have the certificate that expires on November 6th, 2020. These is a certificate that I have jewels created. Now, if you only see once difficult, it may be easier for you to identify it, but you can also identify it through the expiration date. It's a bit easier as you get the more and more certificates. Now expand that certificate that you have just identified and select both the certificates and the private key right click in this election and select export two items select where this is going to live. In my case, I am again going to be selecting their stop and notice that finally, at B drill finally is going to be created Glicken safe and assign a password to note Forget the spies. Word Glicken. Okay, allow your man to do its thing and that would be eight. Finally, you can navigate back toe up center and select that beetle filed and now leaves in your desktop or wherever you select it and said the password that you have just created Joe stop centered can open the certificates and that's it. You have now assigned a certificate for distribution for these particular distribution group. Now the distribution group will be able to update with the corresponding device, their provisioning profile. Now wait a minute. So we haven't talked about provisioning profiles us yet. That is in the excess step. So now that are beta testers distribution group is going to be signing or adding the devices off our better testers Through that certificate that we have just a bloated, we can navigate back to the Bill tab and configure the build for our master branch differently. Finally, we're going to be enabling continues delivery, which means there were going to be distributing our application. So we hear the first thing that we have to change is the configuration, and this is no longer going to be the book. These now has to be released. I personally can change the X good version and do notice that if you created an apple certificate back here in the certificates. Identifiers on profiles. These has to be 11 or later. If you created IRA certificated, this has to be 10 or earlier. Then we're going to be finally building for device, not for simulator. These bills will finally be able to wrong on devices. However, that means that we will have to sign the build and noticing here when signing the build here. We need a provisioning profile now before moving forward and creating the provisioning profile noticed that the re soul so as certificates being required and we already have the certificate, we already have that beetle file, so it's upload that same certificate. It is important that this is the exact same certificate that you create it. I mentioned there's because eventually you may have more than one certificate, one for development and one for distribution. So make sure that you use the same certificate that you have just assigned for the distribution group and of course, said the password. So there it is. The certificate now onto the provisioning profile. The provisioning profile is a bit more interesting because there can be a bit s'more versions of this provisioning profile now before we move forward into this, let me never get over to my repository and show you over on the r. U s project that I have this e four, that bill East file and the for the police to file is going to contain inside of it CF bundle. Identify air that in my case reads Come Delarosa as the Dev Ops example, make sure that you grab that is string. This is the identify rare unique. Identify ire for your application because this is unique. That is why you normally want to use a reverse your l something like your domain that come . But instead of the domaine dot com, that would be come the domain and in the name of your application. But just make sure that you copy this is string and navigate over to the certificates, identify or some profiles again. We're going to start by navigating over to identifiers and greeting a brand new AB i D. Which means that our application is finally going to be identified with Apple through that bone. Delighted that we have just copied directly from the photo playlist and optionally as some description obstinately at some capabilities in my case, I do not need to add any of this clicking. Continue and click on register. So we now have these I. D. Our application now has a name are unidentified air Now we can create the profile so never get over two profiles create atthe And because we're already distributing, we're going to be selecting at Arc. But notice that eventually you may have more than one provisioning profile. When you're developing, for example, you may want an IOS app development right now that we are distributing threw up center, we want on a talk distribution profile, but eventually when you distribute to the APP store, you may need an AB store distribution. So eventually you may have a few different provisioning profiles in our scenario. Right now, we just want an ad hoc distribution because we're not distributing to the store. But we are distributing. We're no longer just developing. Sickly can continue and select the app I D that we have just created in my case, develops example and click and continue now in here we need to sell act a certificate again . It is important that you sound like the certificate that you have just added to the distribution group and that your build is going to be using. So in my case, that is these one right here that expires in a year. November 6th, 2020. Anchalee can continue in here, noticed that you can select devices that are going to be able to install whatever application is signed with this provisioning profile. That is why it is very important to set up center to help us add devices to these provisioning profile. Because right now we may only see our own device. For example, let's say that this right here is my device. We would only be able to select it from this list, however, if someone else if someone knew dry streams Stoller application. It is going to be a bit hard for Ross to raise the dad device over and over again with his permission profile, however, because over a nap center, we have a really set our distribution group to have those devices automatically. We won't need to worry about that. So simply said, like one of the devices from here, it doesn't matter, really. Which one you selects clean can continue and said a name. Now I do recommend that You said a name like this one. The name of your application, then at Doc and Vest. Joe. So you know that this is a distribution. I've logged provisioning profile again just because eventually you may have developed man and an APP store distributions and so on. So it is easy to identify why I'm provisioning profile from another. Finally, just click and creates Click on download and you have these mobile provisioned file, which is exactly the one that up center is requesting. So I simply select my mobile provisioned find that I have right here and daddy sit. We're going to be able to sign this built. Seems the build will already be signed. We can distribute the build and of course, we see groups we see store. Right now we're going to be distributing toe a group, which is our Beta testers group, and that's it we actually can save and we have now enabled continues delivery for our application. The set up is complete. Now the week have everything set up. It is time to test if this is actually true. So I'm going to do to trigger a brand new build east. Just come here to my code and creates a new feature branch. Let's say that this is going to be featured Tree. I think that is the next branch that we have to create. Of course, normally you may want agreed these directly from the I D. But let's just say that we're going to be doing it from here hands. I'm not even going to be generating a super feature. All I'm going to do East edit the read Me file and just grind some crap in here. You know something random and their feature He's not important. What I want to do is your Stryker and you built just trigger and you bailed. Of course, normally do not do this actually coda feature. But I just want to commit something new to our new Branch Joe, so I can creates a new poll request so I can create a pull request that is going to emerging feature tree into master. I know that as soon as I create the bull request over on that center and over on the master branch, a new bull request build is going to be triggered right here. We see it's building, and of course, that is going to operate back These couple of checks One for android, one for IOS. Let's not focus on the Andrew one anymore. But as soon as thes build finishes, we will be able to merge into the master branch which will trigger the automatic built. And it is that automatic build their one that is also going to trigger continues delivery. So let me just skip ahead until I have all of those bills complete and show you how that new delivery new version you release has been made available. And here it is. So the pull request Bill has built, of course, and then emerged. And then there is these automatic build Now, like I mentioned, it is Visa Automatic Bill, the one that triggers the continues village. Very process, which means that have earned that these tributes have We will now find these brand new release that has been made available to our beta testers. So you find if we never get over two groups as select that group, we will see that there is a new release available. And if what I told you was true, the entire least of testers should have received a notification, letting them know that there is thes brand new release. So let me jump over here to these IRS device to show you the process for all of these testers to follow so they can actually install your application. So here I have my iPhone. And as you can see, indeed, I have a couple of notifications from AB center. The 1st 1 is the invitation that I mentioned that that these user these beta tester received as soon as we added them to the beta testers group. This was a few minutes ago, but of course, at that point there weren't and releases. However, later these second edification arrived, letting them all of those beta testers know that there is a new version off that application for iris available. So if they were to click on install, they would be navigated over to the least now. Very important. When you click on install, make sure that safari on this Irish devise it's opened. If by default and little brows Reese opened, just make sure that you long click long press Glicken copy the entire link and make sure that you use safari to open this link. So let me just based here that link and navigate over to that website. Of course, the user will have to again with the credentials their credentials in this case, for example, for the 10 days of Samarinda block email that can be get have micro solved Gmail or some other accounts. But as soon as they have sang in notice what they're going to see, they're going to be navigated to the application that you shared with them, and they will now see these brand new release. However, before they do anything else before they trying to install, they have to raise their the device, which we know that absent there is going to do automatically. But your users will have to follow a quick process. So first and foremost, it will have to never get a rigid. It's up right to their profile, and it will have to click on Add new device Glicken allow and that he's going to download at profile to their phones, and now they will have to navigate over to settings and over on settings. They will now find these profile downloaded option, and they will have to install the profile now, just in case they do not see that profile, they will have to navigate over to General Dingo down below, over to profile. And here they should see that absent er device registration profile for Microsoft, the hazards being them loaded again. They will have to click on that profile and click on install as soon as a profile East, since told, this device is going to be registered with your provisioning profile, which means that this device will now be able to wrong your application. So finally they will be able to never gave to those applications and click on Install. The IOS application is going to be downloaded. Jones tests any other replication from example from the APP store, and we will see it right here in the spring board. It is going to be loaded. It is going to be installed. Seems the device has been really stirred. A scenes told correctly with clicking it and we see are amazing application now installed here on a night US device sec solent. That is exactly how you would be able to install that application, or rather, over your testers or all of your users from a distribution group would be able to install that application on their device. Now you will be able to navigate over to the overview and see that there is now one installation. So this is how you enable continues delivery through a distribution Rubin App Center for your iris applications. 4. Continuous Delivery to the Play Store: all right. So in the previous videos, we have been able to release a new version of publication over to some beta testers. Now, those beta testers are currently ah group that we created directly from APP Center. We have not jet distributed outside of up centres, say, to the APP stores. That is exactly what we're going to start doing in these video and on the next one, which is to distribute to the who will place her and to the Apple App store for IOS. Starting in these video, we're going to take a look at how to distribute to the Google Play store. So first time for moves you're going to be able to notice, just as we noticed in the previews videos that ever in the Bill tab, you already see that option to distribute to the APP stores. So if we can figure the build configuration for our master branch or any other branch, if you have any other, you could say the configuration to release, which we already did and said to sign the Builds and said to distribute the bills to exactly the same steps bald instead of selecting groups so that store However, currently, we see no stores in the gates of the Android application. We have to connect the store first, and to do that we're going to have to navigate over to the distribute tab and over to stores. And indeed, we see no connection just yet. So what we can do is click and connect to store and select Google play. This is going to request a Jason file, and the Jason file is going to contain a security token which APP Center is then going to use to Logan into our Google play store to update and application. So who a lot of information here? Maybe a couple of things first? Yes, through the security token, AB Center is going to be able to log in on our behalf. So we'll have to greed a sort of account, an extra account that has access to our place or and makeup center. Use that account and second continues delivery to the stores threw up Center can only happen if you have a first version of your application already published, So yes, app center all it is going to do with that account that we're going to provide to it through a Jason file. He's orbit date an existing application. So before we learn how to greet this Jason file on me, quickly show you that the first thing that you will have to do he's never gave over to the play council Vagal Plate council in here and creates an application. Now, I don't want to bore you with the details of creating the application, because that is pretty straightforward. You just have to feel a lot of forms forms for the name of your application, the description, some images and screenshots and so on. So hopefully, if you're new to this process, you don't find it too hard. Maybe some of you already very familiar with creating applications here on the Ghoul Play Council, but this is exactly the first step that you will have to perform. Create that application and upload and a B K file directly from Android Studio. Or, you know, just from your computer, a balloon and a PK file. As you would normally let me give you an example. I have here these read books application, and I have course completed at tone or forms to provide information to go so over on the store listing. I can see that title on description. Full description, some I can some screenshots and so one You would have to go through all of the steps required by Google. Several of the information is available. Eventually, you will have to come over here to the release management and create a new AB release een the production track. So there is also a beta and a closed track, even an internal track you shoud provide, and a B K for the production tracks you would really can manage. And you would all below the A P K that can be generated from your I D. E and just send it for review. So that is the entire process. Again, I don't want to bore you too much with those details. Once you have that, finally, APP center would be able to update that first version of your application within you A. PK because we already know that is what have center dogs. When it bills are Koth, it generates a new way BK or, in the case of Iris I p. A file, we will cover that in the next lecture. But indeed, we will also need a first version of the I have a Supplication. Let's focus right now on the android application. Once we have that first version, then we have to provide APP Center with these security token and we'll actually find it. Also in the Google play console, we'll have to navigate 1st 2 settings and he here over to AP. I access in here is where we will eventually be able to generate that Jason. But there are a few steps that we need to perform. And of course, this will only have to happen ones. Once up center has that, Jason. It can send as many new versions as many new AP case as needed. So the first thing that you will have to do is link a project in here. So it is likely that you won't see any projects Length right here. The beginning. If this is your first time coming here to the A P I access older would have to do is we a couple of clicks create a new project and link it. And once that is complete, you will see something very similar to this a Google play android developer project linked so very important will play android developer. Then you will have to never g down over to service accounts and create a new service account. You will have to click or right click an opening a new tab. These ghoul ap I counsel link where we're going to be greeting that new account that up center is going to use to log in to our play console on our behalf. So here will Glicken create service account. We get into the name, you know, ab center They've ups example or something like that. Maybe some description and Glick on creates then for the role will have to select project and select owner. So the project, the owner will actually be able to all the day the application within the way. BK But more on that. In just a minute, we can continue and here we're going to be creating that key. That key that app center is requesting and we have a couple of options. We have B 12 but Jason is the one that absent three is going to be using. So we will select Jason, click on creates, and that is going to be downloaded. So we will now have that Jason file on our computer. We will just it in just a minute. But before we do that, let's complete the steps right here in the cool cloud platform by clicking on Deng. And we can now close these window but navigate back to the A P I access so I can just glows these pop up from here, and this is going to reload the page and now show me the brand new service account that I have just created. The last step is to actually grant access to these service accounts and notice that the service accounts, because it will behave as another user can have its own role and even an expiration date in case we want to automate. When is he's going to lose access to all of this permissions. So, for example, let's say that these one is only going to be available for a couple of months trouble set in these date, and I will also said their role to be administrator or maybe even the release manager. That will be fine and weaken said, if these particular Yusor will have permission in a global way or on an app for AP way so for example, for us, we could sell actually one of these applications instead of allowing global access Eve. We want this to have access to jobs. That particular application, in my case, I will just leave. These has global and clicking out of user, and that's it. These brand new user now release manager will now have access to those applications in the scenario all of those applications and update them directly on the play console. Excellent. So now that we have that Jason and the release manager has access, we can navigate back to center and upload that Jason file that we jobs generated. Once it has been a bloated we Anchalee can connect and select our application. Now here is why it is important that an application is already over on the Google Pally Council because that's how those applications are identifiable through their app package name and the package name will be available directly on the manifest. So I have here the code for the project that we have been working with. And if I open the Android project and navigate over to the properties and over to the manifest somewhere instead of this manifest, there is that package name right here. And these these identify air has to be unique application and by application. So that is the one that we will be able to use our Of course, that application has to already accessed on the play council. As you can see, these one does not existed with urges yet. So it says that I can not connect to it because it hasn't been found. Bonds. If my application already existed, let me navigate over to all my applications. For example, these when I hear that I was mentioning Come the LaRussa's don't read books. So let me just change this to read books and clicking a sign that application would actually be assigned. Now we hear I did something terrible. Of course, because the coath has a different application. This is a completely different package than the one that I would have need to a bloat for days application. But just for demonstration sake, that is how you would connect to it. And as you can see now, you have all of those channels that exist in the Google Play Council, Alfa Beta and production tracks that we also just quickly took a look at instead of this application. So now that we have successfully connected, they will play installed to these absent recounts or this up center application, we can never get back to the build tab, configure the bailed configuration for this branch, and finally steel with same configuration steel with the same signing the G store file readying their and the past war than the al es and everything it still continues. Delivery here in the distribute builds option bought. This time I can actually select store and from here, select either of these tracks for example, production and click in safe Now, every single time that new code Regis Master from a push from a committee or from Emerge. This build is, of course, is still going to be generating a new a p. K. But that a P K is now going to be sent over to the Google Play Council again. It is important that I first version exists. He here. So the a p K is actually an update to a previously became. But all of that would happen automatically and eventually over here in the distribute tab, over in the stores and over on whatever attract you selected, You will see that new release. Let me show you an example of an application that has already sent some releases over to the store. So I have here precisely that red book application that I was showing to you earlier over on the play council. And if I never get over to distribute and over two stores, you can see that there is one release for the production track and I can select it. And in fact, there are a few releases in here, and you can see this status because indeed, that play council is actually going to be able to operate this status back here on that center. So each and every one of these releases would have its owner status ive for some recent one of them failed. For example, this one, you would also have that information directly a here instead of perhaps center. So, as you can see, the treating over to the rule place tour is quite easy. Especially now that we already had everything configured from the previews videos. All we had to do was connect the store and use it as a distribution channel for the build off our branch and I am on a different application here. But, you know, whatever we configured here on our develops example application now doing this for Iris is actually a bit different, connecting to the story. It's actually going to be way easier than it wants for Google play, both creating the distribution, configuring the branch for distribution over to the AB story is going to be a little bit different than it Waas for distribution throughout Centre, which wasn't the case for Andrew. It was pretty much the exact same thing. Same G, Easter and everything. So in the next lecture, we're going to jump over to our iris application, connect the iris Absar to that IOS application here in that center, and figure out how they said that we will be able to distribute to the APP store with a new build configuration for our master branch. 5. Continuous Delivery to the App Store: So we have connected the Google play store to these android application that we have here in up centres to weaken. Now configure our build configuration for the master branch to distribute here to a new Visa store tracks. Now let's do the same for the IRS application. So, of course, had navigate over to the Irish version of these application here in that center, and we will be able to notice the exact same thing when configuring the head build configuration for the master branch doing here. We already have this configuration that can be release, we already building for devices. We're already signing the bills and we're really distributing their bills. And just as we are distributing for groups, we would be able to distribute for the stores. However, again, we do not see any store connected just yet, so we will have to do that in these video. Although started by never getting over to the distributes have and no bird to the stores tap, you hear something very similar to Android will appear, will be able to connect to the store and select ab stir connect. However, this is going to be much, much easier. We simply have to at an account or if we already have it. Assaidi's my case, perhaps yours as well. We can click in that apple developer account clicking connect, and these is going to go half and retrieve all of the applications that exist in my abstract connect. Now it is in here where I mentioned to you the exact same thing that I mentioned in the previous video for the Andrew Replication. We are going to need a first version off our application to already accessed inside of APP store Connect so similar to what I mentioned in the previous video, you will have to come here over to Absar Connect, create a new applications that that name feel all of those forms that are required by Apple and again just in the previous video. I don't really want to bore you with details because all we have to do is feel out of forms . Now, let me show you an example of what is it that you will eventually have to feel? Hopefully some of you already familiar with it and for duty of you who are just new to the entire process. It is not that complicated. is just filling a ton of information filling the names of title description, screenshots images, privacy policy, your l and so on for application. So that is a CCS feeling some form, selecting some values from certain drop downs and so on. So I don't want to bore you with the details in here, however you will have directly from X code or if you're no using X Koth by using the new transporter application, which I have right here to a below the new I p A's over to abstract connect. So eventually you will see in the activity tab all of those new i p A files that you upload . Of course, the 1st 1 is the only one that would come directly from X code or from that application that you showed you. Which, of course, you can download from the APP store. The next versions will be coming directly from AB center bought the first build will definitely have to be here was you have a bloated that first i p a. You can from your iris application select that i p a file right. Hearing the bills and send it for review. Apple, Of course, will have to approve everything and so forth. But once res a first version of your application published, you will see that application right here again, just for demonstration sake. Let me Joe select one of the applications and displaced, although that is not the actual application for these code. But you know, eventually you will see the application listed in here. And that's it's this story somebody connected. As you can see, it was way easier, Dan for Android that we had to do waas sign in creating application. Here we have it, the absolute and any groups that we have for a test flight, which means that we can never get back over to the build and changed the build configuration for these Master branch. There are a couple of things that we have to change. The 1st 1 needs the easy one. Instead of distributing to a group, we're going to be streets into the store. And this time we do see both production and all of those test flight options in here. Let me just like production for these one. But the 2nd 1 is over on the signed bills for IOS. We will have to greed at different provisioning profile. The certificate can remain the same, but you may remember how when we created the provisioning profile, we created it for adducts distribution, which WASA case for this jury thing through APP Center. However, now we're actually going to be these tributes ing to a store. So when that book distribution provisioning profile, he's not useful anymore. So what I will have to do is navigate back to developer the apple dot com and over two certificates, identify or some profiles to create jets and know the profile. Should the profiles, as we have done before, I am going to create a new one these time for APP store distribution. The previous time we had selected ATHOC, the Siamese has to be APP store distribution. We can continue and, of course, still select the exact same application. These the exact same app idea that we have been using in my case there, for example, quick and continue select the exact same distribution certificate that we have been using, the one that we have used ah lot for signing the bills and for adding devices to a provisioning profile and so on. Just like that one click on Continue said a name. For example, De Bob's example. I Am Store PP Klingons and the Raids click on Download. And this one these more provisioned file easily won that you will now have to set right here. So remove the previous one. Select a new one, which is already for APP store distribution and that's it. We can now click in safe now, every single time. The new code, which is the master from a push from a commander from Emerge, These master branch is going to be built. A new I p A file is going to be generated that is now going to be distributed to the store . So a new I p a. With a new version of your application is going to be sent over to Apple for review again. Ah, first version would need to already accessed Outer a first version Emmanuel version. But from now on, all of those new bills are going to be this tributary automatically. Let me show you an example of Watts distribution directly from up center looks like. So I also have these Irish version for the Red Book application and over and distributes and over in stores. I see that in production there are already some releases in here, just as we saw for Android. And of course, just as we saw for Android, we see this status off love those bills. In fact, these bills are the ones that you already saw over there on APP store connect. So if we go over to these Red books application and we go to activity, you see version 58 which is these right here? Version 58. This one is first from 52. Version 52. Right here 39 39. Right, Here's and so on and so forth. So all of these are just knew I pay files have automatically be saying to Apple after our first version was uploaded manually, Mom and everything has just been updated automatically. Apple has reviews the I p. A and if they approved that, I pay it. Waas automatically updated for all of my users on the APP store. So this is how you would distribute automatically to the APP store directly from APP center