Chapter 39: Submitting to the App Store

There is nothing more exciting than taking your project which has taken your sleep, sweat, and tears and uploading it to the App Store to be seen by the masses. Let's learn how to submit an app to the App Store.

What you will learn

  • Overview of Provisioning
  • Adding your development account
  • Creating & installing Development Certificates/Profiles
  • Creating & installing Production Certificates/Profiles
  • Adding an App to iTunes Connect
  • Archiving a release build
  • Submitting an App to the App Store

Key Terms

  • Certificate
  • App ID
  • Provisioning Profile

Congratulations! You've finally made it to the point in your development career when you're ready to show the world what you've done. It's time to change the world with your killer app! Let's learn how to upload it to the App Store and release it to the masses.

First let's begin with a flyover of the provisioning process and I will explain what some new terms and concepts mean.

Overview of Provisioning

Provisioning is simply a way of providing something (ie. your app) or making something available to a group of people. The process of making our app available to others via provisioning can cause some headaches. But thankfully Apple has done lots of great work to make this process easier than ever before. The amount of steps needed to get your app on the App Store may seem overwhelming at first, but don't worry – we'll take it step by step.

Checking Out Our Apple Developer Account

First, go to and click 'Account' on the top right (Figure 5.7.1). Log in with your Apple ID and if you haven't already bought an Apple Developer subscription ($99/yr.) now would be the time to do so because what I will show you in this chapter requires you to have a paid Apple Developer account.

Figure 5.7.1 Screen Shot 2016-11-09 at 8.34.29 PM.png

Click on 'Certificates, Identifiers, & Profiles' and on the following screen you will see several sections. On the left, there is a menu with the major sections Certificates, Identifiers, Devices, and Provisioning Profiles. Within each section are more specific options that we won't go over until that section is covered in more detail later on in this chapter.

Figure 5.7.2 Screen Shot 2016-11-10 at 6.09.50 AM.png

We will now talk about some of the main components inside these sections.


A certificate is basically a security measure that allows you to develop and deploy apps. A certificate is provided by Apple and it links your specific computer to your developer account. Any app that you create on your computer gets signed with your certificate (Figure 5.7.3).

Figure 5.7.3 figure 5.7.3.png

App IDs

An App ID is a unique identifier that helps to set your app apart from any other app. When you submit your app to the App Store, Apple requires it to have this identifier so that it can be separate from all other apps in it's marketplace.

The App ID we use in Xcode will need to be the same as the one we use in our Apple Developer account when trying to submit it to the App Store. Figure 5.7.4 shows an imaginary App ID "a9R39Fe" being shared by Xcode and an app in an Apple Developer account.

Figure 5.7.4 figure 5.7.4.png

An App ID also informs Apple of what features your app uses (i.e. Push Notifications, Apple Pay, SiriKit, etc.). When you go to create one in your Apple Developer account, you can tick boxes to enable these features. More on that later.


This section is for your test devices. The ones you can register in your Apple Developer account for development purposes. You may be wondering, "Do I need to register my iPhone or iPad to test my own apps?" The answer, thankfully, is now "No" as of Xcode 7. You actually don't even need a paid developer account to test apps on a local device via Lightning cable, but that is beside the point! If you want to build an app over the Internet to many test devices (i.e. beta testing via TestFlight) or via Ad-Hoc, the devices must be registered here.

Provisioning Profiles

A provisioning profile has two main types – Development and Distribution.

A Development provisioning profile allows for us to code-sign an app so that it can be installed and tested on various devices via TestFlight or via an Ad-Hoc server. A Distribution provisioning profile allows for an app to be submitted to the App Store.

When we create a provisioning profile, it will take in our app and allow us to either work towards development or towards distribution.

We will create a profile like this in our Apple Developer account. It will pass through the certificate we created for verification and then will be usable by Xcode (Figure 5.7.5). For uploading to the App Store, it works similarly but in reverse. We can use a production provisioning profile to send our project from Xcode through our certificate, then through our provisioning profile, and to Apple.

Figure 5.7.5 figure 5.7.5.png

This section has served as a very general overview of what we can do in our Apple Developer account. In following the sections, we will go into specific details about each section and how it applies to us as a developer.

Setting Up A Project

Creating A New Xcode Project

First, open Xcode if you haven't already and click Create New Project. Click Single View Application. Click Next. You should see a screen like the one in Figure 5.7.6. Give your project a name like ProvisioningDemo. Below the name field, there are a few drop down menus but for the sake of this chapter, you won't need to change any of them. Click Next. Choose somewhere to save this project file and click Create to save it.

Figure 5.7.6 Screen Shot 2016-10-17 at 5.12.54 AM.png

We will use this project for the duration of this chapter to help us in installing certificates, provisioning profiles, and submitting to the App Store.

Adding Your Developer Account

Now that we have a project set up, we need to add a development account via our Apple ID so that we can connect Xcode to our developer account. Go to Xcode > Preferences > Accounts and click the + button at the bottom left-hand side of the window. Click Add Apple ID... and log in to your Apple ID connected with your Apple Developer account (Figure 5.7.7).

Figure 5.7.7 Screen Shot 2016-11-10 at 10.54.03 AM.png

After logging in, you should see your Apple ID show up in the Apple IDs section on the left. If you click on it, you will see your role under that account. Most likely, you will see Admin or Member depending if you're working alone or with a team. As you can see from my account, I am considered a User on my personal account Caleb Stultz, but am a Member for Devslopes, LLC (Figure 5.7.8).

Figure 5.7.8

Screen Shot 2016-11-10 at 10.56.28 AM.png

According to Apple's documentation, the roles operate as shown in Figure 5.7.9:

Figure 5.7.9

Screen Shot 2016-11-10 at 10.58.25 AM.png

The User role basically means that my personal account is not linked to a paid developer account, but my link to Devslopes, LLC is.

If we go back into our Xcode project settings, we can see that under General > Signing there is a new drop-down menu where you can select a development team (Figure 5.7.10):

Figure 5.7.10

Screen Shot 2016-11-10 at 11.02.32 AM.png

Installing Development Certificates & Provisioning Profiles

Let's set up our project to be available to developers on our team or to beta testers with a Development provisioning profile.

Setting Up

First, while in the Signing settings notice that there is a check box selected which says, "Automatically manage signing". Beneath it, there is a message – "Xcode will create and update profiles, app IDs, and certificates." This means that Xcode can and will manage everything we need to do in this chapter, but as it can be a bit buggy, we can't always trust that it will work perfectly. You are learning the manual method to provisioning in case the automatic method doesn't work properly.

Now, look up at the Identity section and notice that our app has a field for Display Name, Bundle Identifier, Version, and Build (Figure 5.7.11). We want to pay attention to the Bundle Identifier because that is what we will actually paste into our Apple Developer account in a moment so that we can link our app to our Apple Developer account.

Figure 5.7.11

Screen Shot 2016-11-10 at 11.16.06 AM.png

Copy the Bundle Identifier from Xcode. We will use it in a moment.

Creating an App ID

Go to and click Account at the top. Sign in to your Apple Developer account if you haven't already. Click on Certificates, Identifiers, and Profiles just as we did before. Under the Identifiers section, click App IDs. Then click the + sign on the top right. You will see the screen as shown in Figure 5.7.12:

Figure 5.7.12 figure-5.7.2-img.png

On the following page, we will enter in some critical information about our app. Let's start with the Name field. Enter in the app name as you'd like it to appear. For our app, we will enter in "Provisioning Demo" (Figure 5.7.13):

Figure 5.7.13 figure-5.7.13-img.png

We also need to select the Explicit App ID button under the App ID Suffix section. This is where you get to paste in that Bundle Identifier you copied from Xcode – get excited!

Figure 5.7.14 figure-5.7.14-img.png

Next, if you want an app to use any of the services in Figure 5.7.15, you need to tick those boxes. As you can see, I have ticked Push Notifications as that is a commonly used service in mobile apps. Note: You can always edit your App ID later on and add/remove services.

Figure 5.7.15 figure-5.7.15-img.png

After you've filled out the Name and Explicit App ID fields and have ticked the boxes for the services that you want, click the Continue button at the bottom.

The page that follows simply is a confirmation of your choices. Look it over carefully and make sure that you've entered everything as you have planned. If you need to change something, there is an Edit button at the bottom of the page. Note that Game Center and In-App Purchases are always enabled and ready for use (with the proper configuration) and Push Notifications are shown as configurable by default. If everything is good to go, click Register to create and save your App ID. 👍

Creating A Development Certificate

Now that we have a unique identifier set up for our app, we need to create a certificate which will allow us to securely send our app to other developers within our team or deploy it to beta testers.

We need to create what is called a Development certificate. You should see the menu containing the sections Certificates, Identifiers, Devices, and Provisioning Profiles.

Within the Certificates section, click Development, then click the + button in the top right. Make sure you tick the box iOS App Development. Your screen should look like the screen shown in Figure 5.7.16:

Figure 5.7.16 Screen Shot 2016-11-11 at 8.26.23 AM.png

Click Continue and on the next screen you will see that you need to create a CSR file. CSR stands for "Certificate Signing Request" and we can create one using an app already on our Mac.

To do so, press ⌘ + Space to use Spotlight Search and search for Keychain Access. You can also find it by going to Applications > Utilities > Keychain Access.

Creating a CSR File

The whole point of creating a development certificate is to link our physical machine to our Apple Developer account, so we need to request that our certificate be signed by the Certificate Authority.

To do this, click Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority... (Figure 5.7.17):

Figure 5.7.17 figure-5.7.17-img.png

On the following screen (Figure 5.7.18), our information has been auto-filled but we need to tick the box entitled Saved to disk. Ensure that your Apple ID linked with your Apple Developer account is entered in the User Email Address field then click Continue.

Choose a place to save this file (I chose the Desktop), and click Save.

Figure 5.7.18 Screen Shot 2016-11-11 at 8.41.16 AM.png

Back in your web browser, click Continue so that we can upload the file we just created called CertificateSigningRequest.certSigningRequest. Click Choose File... and select the file from wherever you saved it (Figure 5.7.19).

Figure 5.7.19 Screen Shot 2016-11-11 at 8.44.11 AM.png

Click Continue to finish making your Development certificate.

Downloading and Installing a Development Certificate

Go back into Certificates > Development and click on the Development certificate you just created. You will see a Download button (Figure 5.7.20). Click it to download the certificate, then double-click the downloaded file to install it into Xcode.

Figure 5.7.20 Screen Shot 2016-11-11 at 8.50.28 AM.png

Creating a Development Provisioning Profile

Now that we have a certificate linking our physical computer to our Apple Developer account, we need to create a provisioning profile so that we can actually send our project to a development test device.

Go back into your Apple Developer account, scroll down to the Provisioning Profiles section, and click on Development.

Next, click the + button in the top right (Figure 5.7.21):

Figure 5.7.21 figure-5.7.21-img.png

Select iOS App Development and click Continue. Next, we need to select the App ID we created earlier for our Provisioning Demo project. Select it from the drop-down menu if it isn't selected already (Figure 5.7.22):

Figure 5.7.22 figure-5.7.22-img.png

Click Continue and on the following screen select the appropriate development certificate for your device which we made earlier (Figure 5.7.23). Click Continue to move on.

Figure 5.7.23 Screen Shot 2016-11-12 at 6.05.24 AM.png

The following screen (Figure 5.7.24) prompts you to select devices which you want your project to be able to be built to. If you want to register team members devices, you can do that back in the Devices section on the main screen of your Apple Developer account. Select all devices that are there and click Continue.

Figure 5.7.24 Screen Shot 2016-11-12 at 6.09.06 AM.png

Lastly, we need to give a name to our profile which will be seen in the main menu. I named mine ProvisioningDemoProfileDev to be specific and clear about the type of profile that it is (Figure 5.7.25):

Figure 5.7.25


Click Continue again and you will be brought to a page where you can download your development provisioning profile. So, click Download and double-click the file to install it into Xcode.

Checking Build Settings

Now that our profile is installed, we need to check our build settings in Xcode to make sure that it's configured properly for development.

With the ProvisioningDemo project open, navigate to your project's settings and in the menu select Build Settings, then scroll down and find Signing (Figure 5.7.26):

Figure 5.7.26 figure-5.7.26-img.png

Notice that for Debug and Release, the option Don't Code Sign is selected. his may or may not be the case for your project, but what it means is that Xcode can only work with development devices.

You can't submit an app to the App Store without code-signing and we can't even send the build to other developers this way, because code-signing is a way to ensure that our project is being accessed by only those whom we've given access.

It is best practice to select either the generic iOS Developer profile or our explicit development profile like the one we just created. In Figure 5.7.27 below, I selected iOS Developer under the Debug menu for development:

Figure 5.7.27 Screen Shot 2016-11-12 at 6.39.24 AM.png

Installing Production Certificates & Provisioning Profiles

A Production certificate and production provisioning profiles are what allow us to submit our app to the App Store for the world to download and enjoy!

Creating & Installing A Production Certificate

To create one, we need to start back at the Apple Developer portal like before. The process to create certificates and provisioning profiles for Production is basically the same as making one for development with a few key differences.

In the Certificates menu, click Production, then click the + sign at the top right to create a new production certificate (Figure 5.7.28):

Figure 5.7.28 figure-5.7.28-img.png

On the screen that follows, select App Store and Ad Hoc under the Production category (Figure 5.7.29). This is so we can connect our project to the App Store or to beta testers via TestFlight or an Ad Hoc network later on. Click Continue to move on.

Figure 5.7.29 figure-5.7.30-img.png

Now we need to create a CSR request just like before. If you'd like, you can actually use the same .certSigningRequest file you saved before. Click Continue. On the following screen click Choose File... and select the same .certSigningRequest file from earlier.

Click Continue to upload that file and finish up making our Production certificate.

Now we can download that certificate just like before by clicking on the name of the certificate then the Download button in the menu Certificates > Production like in Figure 5.7.30:

Figure 5.7.30 figure-5.7.30-img.png

Double-click the downloaded file to install the certificate.

Creating & Installing A Production Provisioning Profile

Now that we have a certificate in place, we need to create a provisioning profile for the distribution of our app.

In the Apple Developer portal, scroll down to Provisioning Profile and click Distribution. hen click the + button to create a new provisioning profile (Figure 5.7.31).

Figure 5.7.31 figure 5.7.31-img.png

On the page that follows, tick the box App Store under the Distribution section. Then click Continue (Figure 5.7.32):

Figure 5.7.32 figure-5.7.32-img.png

Next, select the App ID for the app you want to submit (i.e. ProvisioningDemo) and click Continue once more.

Select the appropriate iOS Distribution certificate on the next page. You should be able to see the one you just made in the last section (Figure 5.7.33):

Figure 5.7.33 Screen Shot 2016-11-12 at 7.57.25 AM.png

Click Continue and give your profile a name. I named mine ProvisioningDemoDistribution which is specific to our app and describes the type of profile. Click Continue one last time and click the Download button to download your distribution provisioning profile. Double-click the downloaded file to install it.

Checking Build Settings

We are now going to modify the build settings in our Xcode project. Earlier, we set up our project's build settings for Development and now we're going to set it up for Production.

In your Xcode project, navigate back to the project settings and click on Build Settings, then find the Signing section.

Under the Release section, select iOS Distribution from both the Release and Any iOS SDK drop-down menus (Figure 5.7.34):

Figure 5.7.34 Screen Shot 2016-11-15 at 6.10.58 PM.png

At this point, we have set up Xcode as far as we need to. Let's move on.

Submitting an App to the App Store

Using iTunes Connect to Create An App Project

To submit our app to the App Store, we must first create an app project on a website called iTunes Connect. This site is linked with your Apple ID already, so we don't need to create a new account or anything.

Go to in your web browser and log in with your Apple ID. Upon logging in, you should be presented with the following page (Figure 5.7.35):

Figure 5.7.35 Screen Shot 2016-11-14 at 6.00.57 PM.png

Click My Apps, click the + sign in the top left-hand side of the window, then click New App (Figure 5.7.36):

Figure 5.7.36

Screen Shot 2016-11-14 at 6.02.04 PM.png

You should see a pop-up appear asking for information regarding this new app. Ensure that the iOS box is ticked and then look at the text fields beneath it. You must enter the Name, Primary Language, Bundle ID, and SKU fields.

For the Name enter the app name that you would like to appear in the App Store. Bear in mind that your app name has the most significance to your app being discovered. This is why when you go to download an app like YouTube, the actual title of the YouTube app at the moment is "YouTube - Watch and Share Videos, Music & Clips".

This is because the YouTube team knows that most people search for those kinds of terms when they are looking for an app like YouTube. It actually has the most weight out of anything else that you do to optimize your app, so use your app name to your advantage.

Choose the Primary Language your app will use. our Bundle ID is the one we made earlier. If you're following this example, it will be called ProvisioningDemo. The SKU of an app is a unique identifier which sets your app apart. Think of it like a bar-code for your app. I chose ProvisioningDemoFunTimes just to have a little fun with it.

Figure 5.7.37a


After all the required information is entered, click Create.

The screen that follows is where you need to enter in any relevant information about your app (Figure 5.7.37b). First, ensure that the name is correct and that the Bundle ID matches the one you created earlier. It should, but it's best to be safe here. The Privacy Policy URL field is where you need to link to your app's Privay Policy. If you don't yet have one, do some research on how to write one and throw it up on a website. You can either buy a domain and design a website for your app (probably a good idea in the long run), or just create a free website using something like Google Sites or Wix.

Figure 5.7.37b Screen Shot 2016-11-14 at 6.22.01 PM.png

The reason for needing a Privacy Policy is stated by Apple on this page:

A URL that links to your organization's privacy policy. Privacy policies are required for apps that are Made for Kids or offer auto-renewable or free subscriptions. They are also required for apps with account registration, apps that access a user’s existing account, or as otherwise required by law. Privacy policies are recommended for apps that collect user- or device-related data.

So if your app is described in any way by the following statement, you need a Privacy Policy.

Next, you should select a Category for your app. Click on the Primary drop down (this one is required) and select the category that best fits your app. If you'd like, select a secondary category as well.

Click Save at the top to save your progress thus far.

Setting Up Our App's Price

Click on Pricing and Availability on the left-hand side of the window and you will see the following page appear:

Click on the drop-down menu that says Choose... to select a pricing tier (Figure 5.7.38). f you want your app to be free, simply select USD 0 (Free) as you'd expect. If you'd like to set a fixed price, do so by clicking on the price in the drop-down menu.

Figure 5.7.38 Screen Shot 2016-11-14 at 6.29.16 PM.png

Once you've saved your changes, you can even set up price staggering which allows you to set a launch promo price or even schedule a discounted price for your app.

Now we need to add some super critical stuff to our app project – metadata!

Adding App Metadata

On the left-hand side, click on 1.0 Prepare for Submission (Figure 5.7.39) and you should see this screen appear (Figure 5.7.40):

Figure 5.7.39

Screen Shot 2016-11-14 at 6.34.54 PM.png

Figure 5.7.40 Screen Shot 2016-11-14 at 6.36.57 PM.png

Apple requires that you include an app preview video and up to 5 screenshots of your app. If you look at the most successful apps on the App Store, they are doing an amazing job at utilizing this space.

Helpful Hint: An app preview video can easily be created by using QuickTime's Movie Recording feature. Connect your iPhone via Lightning cable and change cameras from your Mac's FaceTime camera to your iPhone! You can then record input from your iPhone and save it as a video file for editing later on.

The best practice is to create a set of five App Store screenshots at each device resolution (iPhone 4, iPhone SE, iPhone 7, & iPhone 7 Plus) however Apple only requires you to upload 5 screenshots at iPhone 7 Plus resolution.

Whenever your screenshots are created, upload them to iTunes Connect by dragging them on the grey rectangle in Figure 5.7.41.

Figure 5.7.41 Screen Shot 2016-11-14 at 6.49.25 PM.png

Scroll down and we can add our app description, keywords, support URL, and marketing URL. Your app description is important and I suggest that you research what the big guys are doing and seek to emulate them. Find an app on the App Store like Uber, Instagram, Snapchat, etc. and see how they've formatted and written their app description.

Your keywords are also important as they are used to show your app when a person searches for certain keywords. Your keywords should be specific and relevant to your app. Think of what your prospective user would search for to find your app. Your support URL can be a website you own or a free website as long as it is a legitimate website where users can find more information about your app. The marketing URL is optional but if you have a URL with marketing information about your app (perhaps a press kit, etc.) you should include it here (Figure 5.7.42):

Figure 5.7.42 Screen Shot 2016-11-14 at 6.52.18 PM.png

Once that's all squared away and filled out nicely, we need to keep scrolling down the page. Scroll past Build for now and move on to General Information (Figure 5.7.43):

Figure 5.7.43 Screen Shot 2016-11-14 at 7.14.28 PM.png

This is where you need to enter in all relevant information for your app like copyright information and your address. You also need to upload an app icon with these requirements:

This icon will be used on the App Store and must be in the JPG or PNG format, with a minimum resolution of at least 72 DPI, and in the RGB color space. It must not contain layers or rounded corners.

You also need to choose a version number. This number needs to match the version number in your project settings in Xcode. If you aren't sure what to put here, go to your Xcode app project and open the project settings. The version number is in a text field directly beneath the Bundle Identifier field. Make sure that this number matches what is in iTunes Connect.

After uploading and entering in all required data, scroll down to the App Review Information section. You need to give Apple a your name, phone number, email address, and a demo account (should your app require any type of authentication). There is also a field for notes which, according to Apple, is meant for:

Additional information about your app that can help during the review process. Include information that may be needed to test your app, such as app-specific settings.

Once you've entered that, we have finally reached the bottom of the page. We need to decide when to release. The options are shown in Figure 5.7.44. As you can see, Automatically release this version is selected by default:

Figure 5.7.44

Screen Shot 2016-11-14 at 7.33.33 PM.png

Alright, phew! We made it! Almost there... Click Save at the top of the page because now it's time to upload a build to iTunes Connect so that we can submit it once and for all! Woohoo! 🤘

Archiving and Submitting a Release Build to the App Store

Now that we have our certificates and profiles installed as well as our app metadata entered in iTunes Connect, we are finally ready to submit our app to the App Store! Yaass...

Switch on over to Xcode and open ProvisioningDemo.xcodeproj if it isn't already open. Make sure that you are in the project settings then click on Build Settings and find the Code Signing section just like before.

Under the Provisioning Profile menu, select the Distribution provisioning profile we created earlier in this chapter called ProvisioningDemoDistribution. You also need to select your iPhone Distribution certificate from the Release and Any iOS SDK drop-down menus (Figure 5.7.45):

Figure 5.7.45 Screen Shot 2016-11-15 at 6.51.58 PM.png

Bear in mind, this will disable you from building your project to a device or the Simulator until you switch this setting back to your development profile.

Changing Our Build Scheme

In the top-left of your Xcode window, click on your project name and click Edit Scheme (Figure 4.7.46):

Figure 5.7.46


On the screen that pops up you need to click on Archive from the menu on the left-hand side. When submitting a build of our app to the App Store, we need to archive it. Imagine that you're sealing off this build of your project so that it is uploaded to iTunes Connect, just the way it is.

On the Archive screen, we need to verify that Archive is selected from the Build Configuration drop-down menu. Afterward, click Close to close out and change our Build Scheme.

Archiving A Release

Next, at the top-left of the Xcode window, we need to switch from a Simulator device to either: (1) Our actual device plugged via Lightning cable. (2) Generic iOS Device.

Choose one of those options and click to select it (Figure 5.7.47):

Figure 5.7.47


Here comes the exciting part! In the menu bar at the top of Xcode, click Product > Archive and allow for Xcode to do it's thing. It will appear as if it's building as normal, but when it's finished it will open up a new application called Organizer. It can take quite a while for your app to successfully archive and copy into Organizer, so give it some time.

Once Organizer has opened, you will see the following screen (Figure 5.7.48):

Figure 5.7.48 figure-5.7.48-img.png

Before we do anything, we should validate our app. This will basically run our app through an automated version of some of Apple's tests they run on our app to make sure it's good to go to the App Store. This is a huge time-saver because in the good ol' days, you had to submit your app to Apple and wait 7 days just to tell you that you needed to fix some really minor things. Being able to validate it ourselves means that we don't have to waste our time.

Click the Validate... button and on the pop-up that follows, you need to select the appropriate development team. Choose the one you've been using, then click Continue. The pop-up will show the progress of the preparation of our archive. After the archive is ready to be validated, you will see a confirmation screen like in Figure 5.7.49:

Figure 5.7.49

Screen Shot 2016-11-15 at 7.39.15 PM.png

When you're ready to validate your project, click Validate and Xcode will do it's thing. After a while, your archive will be uploaded. Should there be any warnings or errors, they will be displayed afterwards (Figure 5.7.50):

Figure 5.7.50


Since I was only shown a warning, I'm going to move forward by clicking Done.

Believe it or not, our build has been uploaded to iTunes Connect. Go back into your iTunes Connect account and open up the app project we started earlier. Click 1.0 Prepare for Submission. If you scroll to the Build section, you should now see the build we just validated and uploaded. It should have a status of Processing at the moment.

To officially submit your build to the App Store, ensure that all of the information from above is completed in full. Click Save to save all changes then click Submit for Review and your app will be sent to Apple for review!


You finally did it. You've uploaded your first app to the App Store! You will need to wait a few days to hear back from Apple and to be honest, expect that your app won't be approved at first. Apple is very picky about the apps on their App Store. It is how they ensure they have a top-of-the-line marketplace.

Of course, make sure you refer to Apple's documentation and guidelines for uploading to the App Store which can be found in their developer documentation online. Remember, Google is your friend. 🤓

Wrapping up

Wow, so as you can see there are TONS of steps in order to get your app onto the App Store. Apple has helped with a lot of this actually by enabling automatic signing, app ID, and certificate creation, but you now know the entire process.

You can now upload apps to the App Store manually if the automatic features aren't working. As a developer, it is good to learn how these things work behind the scenes.

But seriously, pat yourself on the back. Amazing work. 👍