Intermediate React Native, v2

Deploying to the App Stores

Intermediate React Native, v2

Check out a free preview of the full Intermediate React Native, v2 course

The "Deploying to the App Stores" Lesson is part of the full, Intermediate React Native, v2 course featured in this preview video. Here's what you'd learn in this lesson:

Kadi discusses how a mobile application is deployed to the Android and iOS app stores. Developer accounts are required to create the app and upload a production build. Links and details instructions are provided on the course website.

Preview
Close

Transcript from the "Deploying to the App Stores" Lesson

[00:00:00]
>> Kadi Kraman: The last topic I wanted to cover is what you actually need to do to deploy to the App and Play stores. So you've finished building your app. It's ready to be published. What are the actual steps you need to take to go from here to your end users?

[00:00:17]
The first thing you need is to get a developer account. So both Apple and Google need a developer account, and you have a choice between an individual developer account and a business account. If you sign up for a business you need to provide additional information to prove that you own the business.

[00:00:37]
So it's tempting to then use individual accounts, but something that you should be wary of is, due to regulations, if you charge for your apps, either for downloads or in app purchases, then the address registered on your account will be made public on the App and Play Store pages.

[00:01:01]
And there's enforcement that you basically have to use your legal address. So it's kind of a pain for individual developers if your account is in your name. And so, for example, on Google, when you sign up for a Google Developer account. So this is a one time fee of $25, which is great to get lifetime access.

[00:01:23]
But when you sign up as an individual developer, you need to show your ID, so your passport or driving license. And also you need to prove your address. So literally your rental agreement or your mortgage. And it takes a couple of days to come back, and this is the address that you use.

[00:01:43]
So then if you have a paid app on Google Pay, there's the address that will make public. So this is something to be wary of. So that's why if at all possible, if you're going to charge for your apps, you need to use a company account. So if you do any limited company, then you can use a PO box, for example.

[00:02:03]
>> Kadi Kraman: For iOS, you need to sign up for an Apple Developer Program, so this is more expensive, and it is a subscription, so it comes with an annual $99 fee. And the difference between Apple and Google is, for Google, you only need the account when you're actually ready to publish to the users.

[00:02:19]
Whereas for Apple, you need an account, as you've seen, just to generate the certificates to run on a physical device. Next up, you need to create the app that you want to deploy. And one thing to note here is that the app that you deploy to users is actually a different format.

[00:02:36]
So it's signed differently. But it's also a different, more optimized file than the one that you use for development. So for EAS, I can actually do, here's one I built earlier.
>> Kadi Kraman: So I've done a Play Store build, so this is an example that I did, so I've done an internal distribution build for Android and I've done a Android Play Store build.

[00:03:10]
So this one, it lets me install it directly, and actually if I download it,
>> Kadi Kraman: You will see that it is an APK file type, whereas the Play Store build, So this is what we deliver to the Play Stores, you see it doesn't actually give me the option to download on the device, to install it on a device.

[00:03:43]
But then if I download it can, it is an AAB format. So AAB stands for Android app bundle and it is something that you can't directly install on a device. And basically, what happens is that you upload this to Google and then Google generates APKs from it for different device types.

[00:04:11]
So one thing that you notice that this APK is massive, and I think people who start building Android apps, especially with Expo, they'll be, no, my Android app is 100 MB, that is terrible. But this is not an accurate representation of how large your app is going to be in your end users, because firstly, the optimized format is AAB, and the actual, downloaded size will be even smaller.

[00:04:40]
I think I have a page for this, where I did a test, so explore android app size. Yeah, so I did a test for this, so this was in SDK 50, but the AAB was 27 megabytes, and then when I uploaded it to Google Play. The estimated download size was actually closer to 11, 12 megabytes.

[00:05:06]
So you won't know how big your Android is going to be until it's actually downloaded to the end users. So don't be terrified when you see a very large APK during debug or during development.
>> Kadi Kraman: And then it's the same for iOS, so the internal distribution build will be installable on a device, but then the iOS App Store build completely isn't.

[00:05:34]
It is only for submitting to the App Stores, and you actually see, okay, let me see what the next part was.
>> Kadi Kraman: Okay, and then the next part is uploading the production app to the stores. Now, this seems trivial, but for one of the platforms, it is actually harder than you think.

[00:06:01]
So, let me show you what the Play and App Stores look like. So I just wanted to show you the UI of Google Play Console. So on Android, if you're ready to release your app, you would go to Google Play Console and you would create a new app.

[00:06:22]
So in this case we will do, let's say, Plantly, and we'll say it's an app, it's free, yes, and we create it. This is the minimal that you have, so now I've created my app. And then the first build that we do is, so many options here, it will be internal testing, yes, you would create a new release, and then from here,
>> Kadi Kraman: Right, so this was the signing key that we talked about.

[00:07:06]
So this one actually asks you if you want to manage your own signing key or use Google managed key. So Google managed always.
>> Kadi Kraman: Okay, weirdly, I've pressed this, but I think it's doing something in the background so it's not progressing. There we go, it did work. Okay, so now, the first build that you do on Android, you would upload your APK here manually.

[00:07:39]
So you would build it locally or in EAS, download it, and then from my Downloads, you would upload your AAB to here. And then you would make it public for internal testing. I won't go through the whole flow, but this is how it would work. For the App Store, you can actually use EAS Submit straight away.

[00:08:03]
So there's two ways to deploy to the App Store. Well, actually three ways. You can deploy via xcode. You can use, if you go to the Mac App Store, there is an app called Transporter, that's right. There's a whole separate app just for transporting your app to the App Store, Transporter.

[00:08:31]
There it is, so this app and literally all it does is that you'll pull your app bundle on here, and then it will publish against. It will upload it to Test Flight on your Apple Developer account.
>> Kadi Kraman: But you could do, eas, so if I go to my test app that I did this morning,
>> Kadi Kraman: plantly-test, so you can do eas submit.

[00:09:10]
>> Kadi Kraman: And this is a totally free service.
>> Kadi Kraman: There you go. So I want to do iOS, and actually you can either submit from a local build or from EAS, so if I select a build from EAS, this was actually a build that I built this morning. So this was the one that we looked at on EAS, so I'll do this.

[00:09:35]
It's making me log in to my Apple Developer account, checking that the bundle ID is registered. And you can see that this actually, it will create the app for me on the App Store Connect. So if I go to Apps, I have some example apps here, but there we go, so it's actually created this app for me automatically the first time I submit.

[00:10:03]
And the name of this app will be the same name that you use in your App.json.
>> Kadi Kraman: So once you've done this for the first time, now you can use the Transporter app if you want to, or you can just use EAS submit.

Learn Straight from the Experts Who Shape the Modern Web

  • In-depth Courses
  • Industry Leading Experts
  • Learning Paths
  • Live Interactive Workshops
Get Unlimited Access Now