در حال بارگذاری ...

Release Process Overview0:00

So you've got your app, it's ready, you now wanna release it to your users and what do you do? You've never done this before maybe, and maybe it needs to be different For native PHP, I can tell you one good piece of news straightaway. It's no different if you've released an iPhone app or an Android app using any other tools, this is exactly the same release process. There's nothing different to do. You compile your app in the right way, you get it validated

There's nothing different to do. You compile your app in the right way, you get it validated by the stores, and then you upload it to the store and you prepare your app for review using the various store's review processes. There's no way that we can take that final review process away. We are working on ways to make the submission process easier. So the submission process is still manual for each platform.

to make the submission process easier. So the submission process is still manual for each platform. That means you need to be familiar with Apple's App store connect platform, and Google's Google Play console. Each one has different guidelines and rules and processes for getting this done. And there are a lot of things to consider about deploying an app to your users and on the stores, we are just gonna look at the happy path

to consider about deploying an app to your users and on the stores, we are just gonna look at the happy path of how to get your app into the review process. The other thing we can't control is the review process itself. This is specific to each store and notoriously they can be a little bit picky. So it does take some time, be prepared with each platform that it's going to take a few days and in some cases potentially even longer

that it's going to take a few days and in some cases potentially even longer for your app to be reviewed. With that in mind, if you've got a deadline, make sure that you're giving yourself enough time to get the app into review before the app needs to be released to the public and do the best that you can do ahead of time to get things in the right shape. For example, there are rules

App Store Connect Setup2:02

to get things in the right shape. For example, there are rules and guidelines around the kinds of things you can say in your app listing on Apple's App Store, for example, you probably shouldn't mention Android anywhere. It seems strange maybe to us from the outside it's odd behavior, but this is the kind of thing that we have to do. First of all, look at App Store Connect. So Apple's interface,

First of all, look at App Store Connect. So Apple's interface, I'm just gonna say straight off the bat, is not the most intuitive and it takes a little bit of getting used to, but once you've done it a couple of times, it'll feel comfortable. It all starts with creating an app. So once you've logged into App Store Connect, come to apps,

So once you've logged into App Store Connect, come to apps, and then you can add your app using this plus button at the top. And we just wanna create a new app. We're gonna target iOS and this one is laracasts Mobile and I'm gonna choose English US as the primary language. I don't have a bundle ID yet for this app in my app store Connect account, so I need

I don't have a bundle ID yet for this app in my app store Connect account, so I need to go ahead and create one. So let's do that. I'm going to just give it a brief description, the laracasts mobile app, and we're gonna give it an explicit bundle id and it's gonna be con, the same one that we gave our app ID in at MV file Con laracasts mobile. And then we need to choose the capabilities

in at MV file Con laracasts mobile. And then we need to choose the capabilities that we're gonna provide for this app. Now these will change depending on your app and what native PHP is capable of at the moment. This app isn't really using any of these features, but native PHPs builtin functionality allows for some of these features like associated domains and push notifications and some others. Whatever ones you intend to use for your app, you are going

and push notifications and some others. Whatever ones you intend to use for your app, you are going to need to register here and make sure that you've got everything configured the way that Apple expects it to be in order for that feature to work in your app. In this case, because I'm not using any of those features, I'm not selecting any of those capabilities and we can come back and add capabilities and remove capabilities later on with our app Id set up,

and we can come back and add capabilities and remove capabilities later on with our app Id set up, we can just continue and register. Okay, so in this case, Laracasts mobile has already been taken, so we can't use that. So we're gonna revert this back to something we can use, but that means we're gonna have to make some changes. So I'm gonna change this to native PHP and we're gonna call it laracasts Mobile like that.

So I'm gonna change this to native PHP and we're gonna call it laracasts Mobile like that. Now it's registered. Let's go back to our app before we forget and make that change in our EMV file. This needs to match up between the app stores and our build. And our build is going to base it on this value. So we need to make sure that these are all aligned. Otherwise we're gonna get problems submitting our builds for review. Once we've got our identifier, we can go back

builds for review. Once we've got our identifier, we can go back to our app creation, but we're gonna have to start this process again. So new app, choose the platform, Acast mobile language as English us. And now the bundle ID that I want to use, we need to set a sku, so I'm gonna say n PHP la. This is just an internal reference

to set a sku, so I'm gonna say n PHP la. This is just an internal reference and isn't used anywhere in public, so this can be whatever you want as an identifier for you internally. And then user access here is just about which users of App Store Connect have access to this app. So in this case, full access is fine, let's create that. Great. Now I've got the start of my listing on the iOS app store,

Great. Now I've got the start of my listing on the iOS app store, but I need to fill in all of this information. We're not gonna do that together because there's a lot here that needs to be done, but we can run through the basics. What's really important to note here is that there are some options that aren't clearly labeled as being required, but they are required. You must have multiple screenshots at the very least

as being required, but they are required. You must have multiple screenshots at the very least for this iPhone six and a half inch display. And for the iPad, if you don't provide these in the right dimensions and with actual screenshots or appropriate imagery that represents your product, you are likely to fail review. Then there are various text boxes for adding promotional texts

Then there are various text boxes for adding promotional texts and advertising what your product is for. You can use these opportunities to create good content that's gonna make finding your app on the store even easier. You must provide support URLs, marketing URLs, a copyright, and the version number. This can be anything that you want it to be. This doesn't need to be a semantic version number that I'm using here.

This doesn't need to be a semantic version number that I'm using here. You could use names, other release number approaches, all sorts of things. What you want it to be is different for each release because this is a public version display and the people who use your app will see it on the app store. So imagine you are asking a user what version of your app they're using.

So imagine you are asking a user what version of your app they're using. They will tell you this value. There are various other features which we're not gonna cover in this app, so we don't need those. If our app is using authentication and requires it before anything else, apple will need a login account to be able to prove that the app works. You need to provide login details here for an account that gives them a reasonable amount of access to the app.

You need to provide login details here for an account that gives them a reasonable amount of access to the app. You should also fill in these contact details with somebody on your team who can contact Apple or be contacted by Apple if there's any need during the review. And if you have any special notes for the reviewer, provide them, then you want to choose your release strategy. Release strategies can either be manual or automated.

to choose your release strategy. Release strategies can either be manual or automated. If you need your application to go out at a very specific time, then you should manually release when the time comes and your app's approved, then you can decide exactly when you want to release it. If you don't mind, you can use automatically release and as soon as your app's approved, it'll be released on the store.

and as soon as your app's approved, it'll be released on the store. And if you've got some kind of embargo or some other deadline that must have crossed before your app gets released, you might want to choose automatically release after a certain point in time. But be warned that it's not guaranteed to release at this exact moment. It could be sometime after this point in time.

to release at this exact moment. It could be sometime after this point in time. One of the most important parts that we've skipped is the build, and that's because the build happens elsewhere and we can't upload it directly into App Store Connect via this web interface. We have to use one of Apple's other tools. And yes, it is Apple's tools and yes, they only work on a Mac,

And yes, it is Apple's tools and yes, they only work on a Mac, so you need Xcode or their Command line tools or another app that they've got called Transporter. Now we're not gonna look into the details of all of those. We are just gonna look at X code. It's straightforward enough. Once the build is complete and we've submitted it through to App Store Connect, it will show up here

Build and Upload iOS10:18

and we've submitted it through to App Store Connect, it will show up here and we can select it as the build to push through the review process. Let's get our build ready. Before we go into Xcode, there are a couple of other steps that we need to take. First, we need to switch our app into release mode, so we need to release it so we can do PHP, artisan native release, and then we are releasing our first major version.

so we need to release it so we can do PHP, artisan native release, and then we are releasing our first major version. So I'm gonna call this major and that's gonna change the version number for us. Then we need to build it, and this makes sure that the packaged up Laravel application that's in the bundle, the actual Swift application is the latest version. So PHP Artisan native Build, and that's gonna take that version for us

So PHP Artisan native Build, and that's gonna take that version for us and package it up for a release. The other important thing that this step is doing is updating various project settings to make sure that they now match what we've got in our app store Connect account. And that's done. So we're ready to archive and submit our build. So let's go to X code PHP, artisan native,

and submit our build. So let's go to X code PHP, artisan native, open iOS, so we can see all of our settings are correct. And so all we need to do is create an archive. To do that, we need to go to product in the menu and archive. This builds the full application with the very latest version of our Laravel code inside all configured properly and ready to be submitted to the store.

all configured properly and ready to be submitted to the store. Once that's done, the archives window opens, and this is what allows us to submit our build to App Store Connect. So we should have all the key information we need here and what we need to do first is validate the build. So we click validate. This is a process that makes sure that the binary that we're submitting to Apple is clean and clear.

This is a process that makes sure that the binary that we're submitting to Apple is clean and clear. This step is pretty much automated and should pass without any worries, right? That's done. Great. So now that that's validated, we can distribute it. And this is what submits it to App Store Connect. So we're gonna choose App Store Connect and distribute, and this simply uploads that with some metadata to our app store Connect account.

and this simply uploads that with some metadata to our app store Connect account. Okay, cool. That's finished too. So our build should now be in our app store Connect. Okay, once our build is actually available, we'll see the buttons for adding the build to this submission will appear. So there's this little plus button and there's this button here too. So we can click any one of these to choose our build.

and there's this button here too. So we can click any one of these to choose our build. And here it's now you can see straight away there's a warning here. Let's go through that process to see what that's all about. So I'm gonna select the build and choose Done. Now I must handle this compliance, so I click manage and there's usually just a few steps to go through to confirm exactly what's going on inside my application

through to confirm exactly what's going on inside my application and which countries I'm gonna distribute it to. And that will determine various bits of paperwork that I might need to provide to Apple for meeting legal requirements that they have for reporting things to various governmental organizations. For native PHP apps, standard encryption algorithms is the option that you should be able to select in most cases

standard encryption algorithms is the option that you should be able to select in most cases Unless you are explicitly creating your own custom proprietary encryption algorithms. Next, is your app going to be available for distribution in France? If it is, if you want to distribute your app to France, there are some compliance requirements for this. I'm gonna say no for now because I'm not ready to distribute this app

I'm gonna say no for now because I'm not ready to distribute this app to the French market And that's it. That process is done. Now, it may not be exactly the same for you in the country that you are in or for the countries that you want to distribute to. There are many other settings that we can go through here in App Store Connect in our submission. You should go through these

through here in App Store Connect in our submission. You should go through these and try to to understand what's available to you and the benefits of using those various sections. But the most important one that you must go to is pricing and availability. In pricing and availability. We need to choose two key things. What price are we going to set for our app on the store, if any, and which countries

What price are we going to set for our app on the store, if any, and which countries or territories are we going to make our app available to? Because this is just a demo, it doesn't matter. I'm going to choose free, and that means I have to set the price to zero. There are other currencies available for the app store and you should probably choose the one that makes the most sense for how you would like to get paid out.

that makes the most sense for how you would like to get paid out. If you want to make your app available at a price, remember that the app store takes a cut of your revenue, so set your price accordingly. As it happens, free is fine for me for this app, so I'm gonna set that. Then you get an opportunity to set the price differently for different territories, maybe for purchasing power parity or some other reasons.

for different territories, maybe for purchasing power parity or some other reasons. This is the place to do that. Once that's set, just confirm that everything's as you expect it to be and you are done with pricing. And then you just need to set up availability. We need to remove France from the list. So I go to manage availability and then deselect France and I can go back to the bottom and finish.

and I can go back to the bottom and finish. Our app is now set up for review. Well, this one isn't because I haven't filled in all of the information and I'll definitely fail review with that. But if I've gone through and provided all the necessary details, the final step is to add for review, and then there's a final confirmation to submit for review.

Google Play Console Setup16:41

for review, and then there's a final confirmation to submit for review. As you can see, I can't do that with this app. So that's the Apple App Store submission process, right? Let's have a look at the Google Play console now. So it's different, but it's very much the same. We need to create an application that's going to be the container for our bundle and all of the details that are gonna go onto the store. So we have to click this create app button on top right

and all of the details that are gonna go onto the store. So we have to click this create app button on top right of our home screen. Then we fill out some of the usual details. Now depending on the kind of account you've signed up for with the Google Play console, whether it's a personal account or an organization account, you might have to go through extra levels of validating your app, proving that, that you're not gonna submit total trash

extra levels of validating your app, proving that, that you're not gonna submit total trash to the Google Play Store for brand new personal accounts. That means you need to get your app in the hands of at least 12 reviewers for 14 days. They need to have the app installed on their phones for 14 days because this account is all ready to go. I can just set up this app. So there's quite a few steps, and the Google Play console is guiding me through each one,

So there's quite a few steps, and the Google Play console is guiding me through each one, and it's not like a wizard process that takes us through each step. So we have to fill it in, save it, go back, complete the next step. If our app requires some login access, we need to provide Google with those credentials. As this one doesn't, I'm just gonna save it saying that it's available for everyone.

As this one doesn't, I'm just gonna save it saying that it's available for everyone. And we're gonna go back, I'm gonna go to the next step and we'll go through all of these steps just to get everything in the right shape. You can't skip any of these steps. You must go through them all to unlock the releasing. So I'm gonna go ahead and do that and we'll come back when that's done. PHP, that took a while,

Create Signed Android Bundle18:46

and we'll come back when that's done. PHP, that took a while, and to be honest, it's not anywhere near ready for production, but that's okay. We've got to this place and that's what I wanna see. I can now create a production release. So let's go ahead and set that up. The first thing that we need to do is create a signed bundle. To create a signed bundle, we have to jump back

to do is create a signed bundle. To create a signed bundle, we have to jump back to the terminal and also Android Studio. So just like on iOS, we need to prepare our larva app to be bundled in with the bundle that we're gonna create. So we need to run PHP Artisan in this case is Native run, uh, Android build equals bundle. Cool. Here's our app bundle, uh, A a b. We are not gonna upload this bundle because it's not signed.

Cool. Here's our app bundle, uh, A a b. We are not gonna upload this bundle because it's not signed. This is just a unsigned bundle and we need a signed bundle. So to get a signed bundle, we need to go into Android studio. So we're gonna do PHP, artisan native, open Android in Android studio. We don't need to do pretty much anything except to generate the signed bundle. And we do that from the build menu, build

to generate the signed bundle. And we do that from the build menu, build generate, signed app bundle, and we wanna select Android app bundle. Now we need to create a sign in key if we've never done this before. And to do that, we just create new, we can fill in these details and that's gonna give us our key. You can use these details for multiple apps,

and that's gonna give us our key. You can use these details for multiple apps, but you should probably keep this key secret for just this organization or this Google Play account. You don't want too many people to have the sign-in keys for apps under this account. You don't want people distributing apps as you pretending to be you or your organization. So keep this information safe, reuse it if you need to. But if you're starting to distribute apps under multiple

So keep this information safe, reuse it if you need to. But if you're starting to distribute apps under multiple organizations have separate keys, we want to create a release build of this A, a, B and gradle. The build tool is going to do that for us. And if we click the locate button, that will open it up to where that file is stored. Now we can upload this to the Google Play concept and Google's gonna do a similar kind of verification process

Now we can upload this to the Google Play concept and Google's gonna do a similar kind of verification process to what Apple does, except they do it all on their servers after we've uploaded it. Where in Xcode we are doing it from our machine calling their servers, and then we can upload our IPA. Great, so our app bundle is ready, it's got all of the details that we need. It's prefilled some of the details for us. We can add some release notes here.

It's prefilled some of the details for us. We can add some release notes here. You can add them in multiple languages too in one go. I'm gonna have to pause at this point just because there's some settings that I haven't completed for this release. But ordinarily, once this is all done, you'd be able to follow this through and push the release and then your app will start to roll out across all of the countries where you've selected for it

Review Process Expectations22:14

and then your app will start to roll out across all of the countries where you've selected for it to appear in the place store. And that's pretty much it. Once you've released an app for the first time and it's been through all the approvals and it's out there, you've got your listing on the stores, it's much easier to do the next release. And the process of review is usually much smoother too. With native PHP, we are seeing apps fly

And the process of review is usually much smoother too. With native PHP, we are seeing apps fly through the review process, especially at Apple who have been notoriously tricky to review apps. There's always been a little bit of trepidation around whether PHP would be an accepted way to build native applications. The reality is, and I'm really happy to say that Apple have no problems with this at all, and we've spoken directly to Apple

that Apple have no problems with this at all, and we've spoken directly to Apple and they've told us there is no issue with using this kind of scripting language as the basis for building an application that uses a web view as its ui. As long as we meet all of the other guidelines and requirements, your apps can live in the store quite happily, and that means now you can use PHP and Laravel to build rich native applications using the tools you already know.

and Laravel to build rich native applications using the tools you already know. Isn't that fantastic?

دوست دارید گاهی خبرهای Laracasts را ایمیل کنیم؟