How to Publish Your App to the App Store (Step by Step, 2026) — Transcript
Full transcript
- 0:00This application is live on the App
- 0:01Store right now. Real listing, real
- 0:03screenshots, and a real price, 99 cents.
- 0:06And in this video, I'm going to show you
- 0:07exactly how it got there. How to publish
- 0:10your application to the App Store
- 0:11step-by-step. Xcode, App Store Connect,
- 0:14screenshots, pricing, submitting for
- 0:16review, everything. It doesn't matter if
- 0:18you build the application with Cloud or
- 0:20manually with React Native or straight
- 0:22in Xcode. By the end of this video,
- 0:23Apple will be reviewing it. Quick thing
- 0:25before we start, my team and I are
- 0:27opening up spots for one or two clients
- 0:30who are serious about their application.
- 0:31We take it from zero all the way
- 0:33planning, building, publishing,
- 0:35maintaining it. A real long-term
- 0:37collaboration. We've been building
- 0:38mobile applications for years. It's what
- 0:40we do. And if you're building on your
- 0:42own, I also open a few one-on-one spots.
- 0:441 hour with me every week or a month or
- 0:47two depending on the project. Going from
- 0:49idea to App Store together. If that's
- 0:51you, please send me an email. It's right
- 0:53here in the description. All right,
- 0:54let's get your app on the App Store.
- 0:58Before we start, you're going to need a
- 1:00couple things. First of all, an Apple
- 1:02developer account, which cost [music]
- 1:04$99 per year. And the approval is not
- 1:07instant. It usually takes like a day or
- 1:09two. You're also going to need a Mac
- 1:11with Xcode installed. You can download
- 1:13Xcode from the App Store. Third, you
- 1:16need an app, any app. You can build it
- 1:18with Cloud, Expo, React Native, SwiftUI,
- 1:21it doesn't matter. Okay, that's all you
- 1:22need. Let's get into it.
- 1:26So, the app that I'm publishing today
- 1:28it's called Kojan. It's
- 1:30kind of like a unique name. I actually
- 1:32encourage you to have a unique name of
- 1:34your application, especially since this
- 1:35is a habit tracker. There are already
- 1:37millions of habit trackers in the App
- 1:39Store. So, try to make it unique. Um it
- 1:43has widgets. The data lives locally. You
- 1:46can sort items. It's compatible with
- 1:49dark mode and light mode. You can see
- 1:51your consistency here.
- 1:53It has smooth transitions. It's fully
- 1:55native, and it works very nicely.
- 1:58I actually built this application in the
- 2:00channel I created a video using Fable 5.
- 2:02So, if you're curious, check it out.
- 2:07Okay, let's get the project [music]
- 2:08ready to be published. The first thing
- 2:11that I would recommend to do before
- 2:13anything else is actually to come up
- 2:15with the brand and the positioning of
- 2:19your application. I'm going to leave the
- 2:20link to the blog that I'm referring here
- 2:23as cloud skills for mobile development.
- 2:26The one that I recommend to use is ASO
- 2:28audit. So, you can copy this and install
- 2:31it. I have actually an explanation here
- 2:33on what it does, but it basically does
- 2:35>> [music]
- 2:35>> a research. I ran it here. My project
- 2:38was named Ember. After running this
- 2:41skill, I found out that there are
- 2:42already five habit trackers called
- 2:45Ember. Then I asked Fable 5 to come up
- 2:47with different names and it came up with
- 2:49the following list and I decided to use
- 2:52Cochan. Once we have this, let's
- 2:54actually work on the actual name of the
- 2:58app. So, since this is a React Native
- 2:59application, you just want to make sure
- 3:01that the name of your app is correct
- 3:04here
- 3:05in the app.json. If you're using Xcode,
- 3:07you can change the name in the Xcode
- 3:09project. Next, you want to make sure
- 3:11that the bundle identifier is correct.
- 3:14For example, it usually is the brand
- 3:18name, in my case Code with Beto, com,
- 3:20and then the name of the app. So, the
- 3:22bundle identifier is a unique string for
- 3:25your application and once you create it
- 3:26and publish your application, you are
- 3:28not going to be able to change it. This
- 3:30is not customer facing, but still you
- 3:32want to make sure that it's good, like
- 3:35with your brand and then the name of the
- 3:36application. Now, I'm setting supports
- 3:39tablet equal to false. This is because
- 3:41Apple requires you to provide
- 3:43screenshots
- 3:45of your application running on iPad in
- 3:48case you decide to support tablets. I
- 3:50recommend that if this is the first time
- 3:51that you're publishing, set this to
- 3:53false because it will save you a lot of
- 3:55time and you can [music] always turn
- 3:57this on and add support for tablet and
- 3:59make sure that everything looks great.
- 4:01But for now, let's keep it simple. Now,
- 4:03something important is that if you
- 4:04decide to support tablet from day zero,
- 4:06you're going to need to support it from
- 4:08now on ever. [music] So, you cannot
- 4:10disable it once it's supported. And if
- 4:13you send updates of your application and
- 4:15it doesn't really work on iPad, Apple
- 4:18can reject it. I also have this strange
- 4:20setting here that is saying that my
- 4:22application does not use any fancy
- 4:25encryption. This is the case for most of
- 4:27your applications and this setting here
- 4:30alone will save you a lot of time
- 4:31because you don't have to manually set
- 4:34this to false in the website once we
- 4:36publish the application.
- 4:38So, I think this is all. Another thing
- 4:40to notice is that the version is 1.0.0.
- 4:43As you keep developing your application,
- 4:45you are going to be increasing the
- 4:46version.
- 4:47>> [music]
- 4:47>> You can only publish one version at a
- 4:49time. So, we start with one and then if
- 4:51you add a new screen or something or you
- 4:53do a major refactor, you maybe want to
- 4:55change this to be version 2.0. Okay, so
- 4:58we have the name, we have the bundle, we
- 5:00have the version. Now, another thing is
- 5:02that we need an app icon. So, this is my
- 5:05icon and Fable created it for me. In
- 5:07case you want Fable to create your icon
- 5:09as well, you can check the app icon
- 5:12skill. It's actually a skill that me and
- 5:14my team created and maintain and it
- 5:16creates beautiful icons that support
- 5:19Android and iOS with [music] the new
- 5:21icon composer compatibility, of course.
- 5:24It uses Snap AI, which is a CLI tool
- 5:26that I created a while ago and I even
- 5:29have videos explaining how to use it.
- 5:31So, you want help with your icon, just
- 5:33use [music] the skill. It's also great
- 5:35for inspiration. Now, we need to
- 5:36actually create the native project of my
- 5:39application. Since this is a React
- 5:41Native Expo application, I need to run a
- 5:44command to be able to generate the main
- 5:47iOS folder that we are going to use to
- 5:50deploy the application. This basically
- 5:52requires to run one command in your
- 5:55terminal. And I'm going to run the
- 5:56following MPX Expo
- 5:59prebuild platform
- 6:01iOS
- 6:03with the clean flag, okay?
- 6:06Let's hit enter.
- 6:07This command will create an iOS folder
- 6:10on the left. Since React Native can
- 6:12target Android, iOS, desktop, web, you
- 6:16just want to run this command for the
- 6:18platform that you want to target.
- 6:19[music] And this will create the native
- 6:21project, okay? So, this is my app native
- 6:24project. And [music] we need to open
- 6:27this iOS folder with Xcode to be able to
- 6:30deploy it. So,
- 6:31let's do that. Open Xcode, select open
- 6:34existing project, and in here navigate
- 6:37to your application. In my case, it's in
- 6:39my desktop. It's called Habit's Fable.
- 6:42And then select the newly created iOS
- 6:45project. We are now inside Xcode. I can
- 6:48see the name of my application if you
- 6:49click on the top
- 6:51>> [music]
- 6:51>> left. If you build your application with
- 6:53Xcode from the start, this is where you
- 6:56join us. Now, we need to sign our
- 6:57application with our developer account.
- 7:00So, in Xcode, you can press command
- 7:02comma to open the settings.
- 7:04And just make sure that you are signed
- 7:07in into your Apple developer account.
- 7:09Just go ahead and add your account by
- 7:11pressing this button. Once you sign in,
- 7:13go to signing [music] and capabilities.
- 7:15Now, this is where most beginners uh get
- 7:18scared because this used to be complex a
- 7:20long time ago. But now you can actually
- 7:23just handle this automatically. So, make
- 7:25sure that automatically manage signing
- 7:27is selected.
- 7:28>> [music]
- 7:28>> And then select your team.
- 7:30So, right now I have Code with Beto LLC,
- 7:32which is my business account, but you
- 7:34can also use your personal team.
- 7:37You just select the correct one.
- 7:39And Xcode will handle the signing. And
- 7:41that's it. That's That's all. Since my
- 7:43application has two targets, the main
- 7:45application and it also has a widget, go
- 7:48ahead and select the widget as well here
- 7:49on the left, in case you have a widget
- 7:52as well,
- 7:53and select your theme as well.
- 7:55Okay. And now we're ready to publish.
- 7:57So, we can send this application now
- 7:59directly to the App Store Connect
- 8:02website.
- 8:03The way we do that is selecting the
- 8:05target here.
- 8:07It's selecting my iPhone by default
- 8:09because it's connected to the computer,
- 8:11but since this is going to compile it
- 8:13for any iOS device, go ahead and select
- 8:16any iOS device, arm 64. And then, go to
- 8:20the product
- 8:21tab and select archive. This will start
- 8:24compiling the application and make it
- 8:27ready for the App Store. This takes a
- 8:29couple minutes, so let's wait a bit.
- 8:31After a moment, the application is ready
- 8:33to be distributed and this window will
- 8:36be opened. So, select version one. This
- 8:38is the one that we just created.
- 8:40Press distribute application and select
- 8:43[music] App Store Connect.
- 8:45So, here it's just very simple. Just
- 8:47press distribute and that's all. Since
- 8:49this is the first time that we are
- 8:50creating this application, it's going to
- 8:52ask us to register it. So, make sure
- 8:55that the bundle identifier is correct.
- 8:58This is the one that I want to use. This
- 9:00is the correct name for the application.
- 9:01So, just press next. And after a moment,
- 9:04we are done. We have a couple of
- 9:05warnings, but you don't need to worry
- 9:07about it. Just press [music] done
- 9:09and we are good. Now, the application is
- 9:12created, the record and this [music]
- 9:14specific build was uploaded to App Store
- 9:17Connect.
- 9:20So, now I'm going to go to my Apple
- 9:22developer account
- 9:24and let's select applications. And now I
- 9:27can see my Code Zone application right
- 9:29here.
- 9:30Now, it doesn't have an icon, it doesn't
- 9:33have anything, but the good [music] news
- 9:34is that it's now created and we can
- 9:37click on it. So, this is where we will
- 9:39add all the information for the
- 9:40application
- 9:42uh before we, you know, send it for
- 9:43review. But right now, the important
- 9:45thing is inside the TestFlight [music]
- 9:47tab. Right now, you can see that the
- 9:49application is being processed. Now, at
- 9:51this point is where the internal testing
- 9:54of the application happens. And for
- 9:56that, to install the application, we
- 9:57need to install TestFlight in our phone.
- 10:00So, go to the App Store and search for
- 10:02TestFlight. It is this one. Just go
- 10:04ahead and download it and open it. We're
- 10:06going to need it to test our
- 10:08application. And after a moment, the
- 10:10application is ready to submit. This is
- 10:13the first build. Now, let's start
- 10:15testing our application. On the left, on
- 10:17internal testing, I'm going to press the
- 10:19plus button and then I'm going to create
- 10:22a new group.
- 10:23I'll just call it internal. I recommend
- 10:25that you enable automatic distribution.
- 10:28That means that every new upload of your
- 10:30application uh will be automatically
- 10:32distributed internally for your
- 10:35developers or just for you in this case,
- 10:37just for [music] me. So, let's create
- 10:39this internal test group. And I'm going
- 10:41to add people here. So, as you can see,
- 10:42I already have a couple people from my
- 10:44organization.
- 10:46I'm going to select myself and add
- 10:48myself as a tester. After I did that,
- 10:50now I got a new email
- 10:53with the invitation. So, you need to
- 10:55actually accept this. Okay, so view in
- 10:57TestFlight. Make sure that you already
- 10:59have TestFlight.
- 11:00This will deep link into the application
- 11:02and will open
- 11:04>> [music]
- 11:04>> um the app so that you can install it.
- 11:07Now, this is not the App Store
- 11:09distribution, but you can still install
- 11:11it and verify that it will work in a
- 11:13production environment. Because now,
- 11:16this is going to be like the real
- 11:17application, okay? Let's open it. And
- 11:19the application seems to be working
- 11:21fine. Let's test dark mode. And once
- 11:24you're happy with [music] the testing,
- 11:26internal testing, we are ready to submit
- 11:28this for production.
- 11:32All right, so let's go to distribution
- 11:34tab. This is the most annoying part
- 11:36because Apple requires real screenshots
- 11:38and they have to look good and you need
- 11:40to provide a bunch of information. I
- 11:41publish a lot of applications and I can
- 11:43tell you that the screenshots is the
- 11:46most painful part of publishing an
- 11:47application. And for that, me and my
- 11:50team actually created a free resource
- 11:52for you. So, it's a Figma template. If
- 11:54you go to coded otto, just go to
- 11:56resources, pull out the another
- 11:57template. I'm going to leave the link in
- 11:58the description as well. And in here,
- 12:01you're going to find um you know, the
- 12:02template. This is a template that you
- 12:04can use to actually build a production
- 12:07ready application. It comes with
- 12:08payments, it comes with support for iOS
- 12:11and Android. Agent skills for
- 12:13rebranding. You can use it for any type
- 12:15of application that you're building.
- 12:17But, it also comes with Figma template
- 12:18and the Figma template is the free
- 12:20resource. So, just click on it. This
- 12:23will open Figma and press open in Figma.
- 12:26You can explore the template pages here
- 12:28on the left.
- 12:30We have a template for Apple.
- 12:33This is how it looks. And we also have
- 12:35one for Google.
- 12:37So, if you're publishing for the Play
- 12:39Store, this will also work for you. We
- 12:41also have a template for your icon.
- 12:44Um since I already have my icon, so I'm
- 12:46not going to be using this. But, what I
- 12:48want to use is the template for the
- 12:50screenshots. So, what I want to do here
- 12:52is pretty cool. You can select the
- 12:54device. On the left, I'm going to select
- 12:56the image.
- 12:58And this is the image that I want to
- 12:59change. So, on my phone, I'm going to
- 13:01just
- 13:03switch to light mode since I think this
- 13:05will look a bit better.
- 13:06Take a screenshot.
- 13:08And then
- 13:09>> [music]
- 13:09>> copy and delete.
- 13:12And then here in my Mac,
- 13:14>> [music]
- 13:14>> I'll paste it directly.
- 13:16And boom, I have my first screenshot.
- 13:19And then you can start changing the
- 13:21text. Of course, you can play around
- 13:22with the design, but this is basically
- 13:24what you would do. Try to screenshot the
- 13:27most interesting features of your
- 13:29application. I think the heat map is a
- 13:31good screenshot to show. It's just
- 13:34copy and delete.
- 13:36You can do the same. Select the actual
- 13:39image.
- 13:41Paste.
- 13:42And boom. It's looking great. Okay, so
- 13:44after a moment, this is what I landed
- 13:46on. So, I'm just going to select the
- 13:48four layers and scroll down, export
- 13:51them. There we have them. This will
- 13:53download a zip file where you can find
- 13:55them. So, now let's just grab the
- 13:57screenshots and drag them in here.
- 14:00Press okay.
- 14:02And boom. We have now the most difficult
- 14:05part of our application.
- 14:09And let's add a promotional text. This
- 14:11is what Claude came up with. Now, the
- 14:14description of the application, you
- 14:16know, just explaining the name, the
- 14:19privacy by design, you know, we don't
- 14:21collect any data, and that will make it
- 14:24easy for us as well. When I paste some
- 14:26keywords, keywords are actually very
- 14:27important because that's how people will
- 14:29find your application, ASO, and all that
- 14:31good stuff. I actually created another
- 14:33video on the things that I do before
- 14:34publishing an application. I'm going to
- 14:36leave it down here. Since I don't have a
- 14:38landing page or a website for this
- 14:40application, I'm just going to use my
- 14:41personal website. But, you know,
- 14:43nowadays you can create a website in 5
- 14:45minutes just by prompting. Now, for the
- 14:47copyright, I recommend that you use your
- 14:49brand name.
- 14:50I'm going to say Codigo Beto LLC. Let's
- 14:53keep scrolling down. Now, let's select
- 14:55the build, right? So, now that we are
- 14:57sure that this version one works, we
- 15:00actually tested it. Just select it, and
- 15:02this is the build that we're going to
- 15:04submit.
- 15:05When you create a new version,
- 15:06>> [music]
- 15:06>> just go ahead and do the same. Select
- 15:07the version that you want to submit.
- 15:09And I recommend that you save the
- 15:11progress so that you don't lose
- 15:12anything. We keep scrolling down, we get
- 15:14to the app review information. My
- 15:16application does not require signing, so
- 15:18I'm going to disable this.
- 15:20And hit save.
- 15:22If your application has authentication,
- 15:24you need to provide
- 15:25uh credentials for the Apple team to
- 15:29review it. And then we get to the final
- 15:31option here, the App Store version
- 15:33release. Automatically release this
- 15:35version. So, when Apple approves this
- 15:36application, I'm going to automatically
- 15:38release it. But, if you prefer, you can
- 15:40also do this manually once you are
- 15:43ready.
- 15:44Okay, so I'm just going to
- 15:45um save that. I have everything saved.
- 15:48Now, the next thing that we need to do
- 15:49is go to the app information here on the
- 15:52left. And now we get to the fun part. We
- 15:54need to provide a name, which is already
- 15:57there. This is my subtitle.
- 15:59Let's just bring it here. General
- 16:01information, just make sure that
- 16:03everything looks correct here. And the
- 16:05category of the application, it's going
- 16:07to be
- 16:08productivity. The other one is going to
- 16:09be lifestyle. So, you can add two. So,
- 16:12if your app contains or shows or
- 16:14accesses any third-party content, you
- 16:16must have the rights to
- 16:18use it in your application. So, you can
- 16:20set up the content rights here. Since my
- 16:22application does not do that, I'm good.
- 16:25I don't need to do that. Let's set up
- 16:27the age ratings. My application is super
- 16:29basic, so I'm just going to say no to
- 16:30everything. But, of course, if your app
- 16:32is
- 16:33more complex or you have, you know,
- 16:36other integrations, you might need to
- 16:38select different options here. No, no,
- 16:40no. Next. No. Next. And then here I'm
- 16:43going to say just not applicable. But,
- 16:45if your application is made for kids, of
- 16:47course, select this option and press
- 16:49save. And this means [music] our
- 16:51application can be used by 4-year-olds.
- 16:53That's good. And that's pretty much all
- 16:55we need to set up here.
- 16:57Going to press save on the right. Let's
- 16:58go to the app privacy. Let's get
- 17:00started. Since I don't collect any
- 17:02information, this is going to be super
- 17:04easy for me. You guys You can just say
- 17:05no. [music]
- 17:06And that's it.
- 17:07And then we can publish it.
- 17:10Press publish.
- 17:12And here you can also provide a privacy
- 17:13policy URL. So, I can use that and save.
- 17:18This, by the way, is required for all
- 17:19applications, so you're going to need to
- 17:21have a URL. I think we're almost ready.
- 17:23Now, after that, I'm going to go to the
- 17:26pricing and availability. Now, my
- 17:28application does not have in-app
- 17:29purchases.
- 17:30By the way, in case you want to learn
- 17:32more about in-app purchases, I would
- 17:33highly recommend to check out my course.
- 17:36I have a full lesson on payments
- 17:40and in-app purchases, especially with
- 17:43RevenueCat. The reason I'm I'm telling
- 17:45you this is because you're going to need
- 17:47to set up some things in the App Store
- 17:50and Play Store.
- 17:51So, my course actually covers both.
- 17:54You need to connect your App Store
- 17:56account and Play Store account to
- 17:58RevenueCat, and then you should be able
- 17:59to
- 18:01um set up subscriptions and in-app
- 18:03purchases.
- 18:04So, of course, this video will not cover
- 18:06that because that's [music] a different
- 18:09beast on its own.
- 18:10But, what I'm going to do now, since I
- 18:12actually want to make money for my
- 18:14application, it's to set up a price.
- 18:17And setting up a price of an application
- 18:18it will actually save you a lot of time
- 18:21because you don't need to set up in-app
- 18:23purchases or subscriptions. So, I'm just
- 18:24going to set a simple price.
- 18:27I don't know if people will be paying
- 18:30will be willing to pay for my
- 18:31application, so I'm just going to set a
- 18:32price of $0.99.
- 18:35Okay, so that's how you, you know, price
- 18:37your application without having to,
- 18:40you know, complicate yourself with
- 18:42in-app purchases and stuff, especially
- 18:43for a simple application.
- 18:45That said, you can also set the
- 18:46application for free and make it
- 18:48available for free.
- 18:50Okay.
- 18:51Let's confirm. [music] This will
- 18:52basically give you the price for each
- 18:54country. You can change that manually if
- 18:56you want, but I recommend that you just
- 18:58select next, next, and select what Apple
- 19:00gives you by default.
- 19:02Now, the set up availability. I want
- 19:04[music] to I want my application to be
- 19:06available in all countries, so let's
- 19:08press next. Continue. Let's go go
- 19:10distribution again. Okay, it seems that
- 19:12we have everything. I'm just going to
- 19:14press add for review here. And this will
- 19:16actually let me know if I missed
- 19:18something. And in fact, I did. So, I
- 19:21need to set up content rights
- 19:22information. Let's take a look. Maybe I
- 19:24didn't save that. Okay, so it seems that
- 19:26we still need to do this. Oh, okay. It's
- 19:27just a matter of saying no, we don't do
- 19:29that.
- 19:31And let's save. Let's go back to
- 19:32distribution
- 19:34and add for review. All right, once we
- 19:36do that, you can actually see that the
- 19:38icon of the application now appears here
- 19:41and we are ready to submit for review.
- 19:43So, it's submitting. We did it. Your app
- 19:46is officially in Apple's queue. And by
- 19:48the way, everything we just did, like
- 19:50from idea all the way to submit for
- 19:52review, is exactly what my book covers.
- 19:55It's called from idea to App Store. It's
- 19:56basically the mental model that you need
- 19:58to actually bring your app ideas to
- 20:00life, even if you don't code. It's just
- 20:03a guide that will actually help you save
- 20:05your progress, iterate up to your
- 20:07application, and successfully publish
- 20:09it, and actually make money. Link in
- 20:10description. [music] I built this exact
- 20:12application using Cloud Fable 5 from
- 20:15zero, step by step, and that video is
- 20:17right here. Build it and then come back
- 20:19to ship it. See you there.
About this transcript
This page contains the full transcript of How to Publish Your App to the App Store (Step by Step, 2026) by Code with Beto, generated from the public captions YouTube serves with the video. The transcript has 3,808 words across 586 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.