Submitting Your App To The Apple App Store In 2019 — A Comprehensive Technical Guide For Beginners

Thabo David Klass
9 min readAug 11, 2019
The App Store on Sunday, 11 August 2019

Few things are quite as exciting as submitting a new app, that you've poured your heart and soul into, to the Apple App Store. The submission represents goals, dreams and possibilities about your future that may have captured your imagination for years. Sometimes though, the excitement of these new possibilities can be dampened by the complexity of the submission process. The submission process doesn't need to be complex at all. This comprehensive step-by-step technical guide is tailor-made for beginners and will help you through the process of submitting your app to App Store Connect via XCode. The process can be tedious and confusing but this guide will hold your hand the whole way and help you avoid the potholes.

The objective of this guide is to show you how to upload a build that you will subsequently submit for review by the Apple Review Team. The build is the compiled, bundled and executable app that you have created with XCode. To get a general overview of the submission process without the technical details, PLEASE READ THIS STORY.

Create an App version and fill in all it's details

  • Click the My App button to open up the section that contains your apps.
  • Create a new app or open up an existing app whose build you haven't uploaded yet.
  • Fill all the necessary fields and add your screenshots. Below is an example collage showing screenshots from our productivity app PicShip.
  • Click the VERSION OR PLATFORM '+' button and choose iOS. Fill in a version number. This is the version of the build that you are going to submit.
  • Fill in all the remaining application details and double-check to make sure that all the necessary screenshots have been set.
  • The Build section is where you will choose one of the builds you have uploaded as part of your submission. At the present moment, there is no '+' button as no build has been uploaded yet. Once it has been uploaded, the '+' button will appear.

Prepare the app configuration for distribution

  • This section deals with configuring your app for distribution. Start off by tapping the blue project folder on the top-left section of XCode. Click the TARGETS section and the General tab. You should see the 'Display Name', 'Bundle Identifier', 'Version', and 'Build' fields. Click the version field and give it the same version number you entered in the section above. The build number should be incremented depending on how many iterations of this particular version have been uploaded to App Store Connect. Since this is the first build, give it the number 1.
  • Beneath the fields, you should see a 'Automatically manage signing' check box. Uncheck it. We are going to manually configure the distribution settings.
  • Click the PROJECT section and go to the Build Settings tab. Make sure that All and Combined are selected as in the image below. Search for the word "signing" through the search bar. Make sure that you choose these settings:
  • Code Signing Identity: iPhone Distribution: Your Team (Developer ID)
  • Code Signing Inject Base Entitlements: Yes
  • Code Signing Style: Manual
  • Development Team: Your Team
  • Click the TARGETS section and repeat the same process as above. Make sure your settings look like this:
  • Code Signing Identity: iPhone Distribution: Your Team (Developer ID)
  • Code Signing Inject Base Entitlements: Yes
  • Code Signing Style: Manual
  • Development Team: Your Team
  • Provisioning Profile: Your Application's Distribution Provisioning Profile

If you have not created a distribution provisioning profile yet, you will find an excellent article on how to create it HERE.

  • White still on the TARGETS section, click the Build Phases tab. Depending on the structure of your project, you may or may not see something like the image below. This project uses Pods so it has additional build phases. Build phases are instructions on what should happen during the building process.
  • Add a Run Script Build Phase by clicking Editor -> Add Build Phase -> Add Run Script Build Phase.
  • You should see a Run Script build phase added like in the image below.
  • Strip away unwanted architectures: the biggest pothole you will encounter when submitting you app is an error caused by unnecessary framework architectures. The frameworks you use in your app come with architectures for mobile and desktop (the iOS simulator). The problem is that when you are done with your coding, the unwanted simulator architectures can still be present. This will create errors when submitting. The solution is to strip them from your build. Click the Run Script expansion arrow and it will open up a text field. Paste the code snippet below into the text field. During the building process, this code will strip away all the unwanted architectures.
  • Unless you are using Pods, make sure that the Run Script is the LAST item in the build phase. If you are using Pods, move it above the Embed Pods Frameworks build phase like the image below.
  • Clean the build folder.
  • Build.
  • Archive your app by clicking Product -> Archive.

Validate your application before upload

  • Validate your app: this essentially makes sure that everything is okay with your app before the actual upload. This part is very important and cannot be skipped. Start the validation by clicking the 'Validate App' button.
  • Validation started.
  • When the dialog below appears, make sure that all the check boxes are checked. Why this is important will be explained in a later section.
  • Choose the relevant distribution certificate and distribution profile from the drop-downs and click 'Next'.
  • Another dialog will eventually appear after a bit of processing. This dialog will show your app and all the embedded frameworks that need to be validated. Click the 'Validate' button to continue.
  • The validation process will take anything from 10 minutes to an hour depending on how large your app is and the volume of requests on App Store Connect.
  • If the validation has been successful, you will received a message like this: App "Your App" successfully validated. It should look like the image below.

Upload your application to App Store Connect

  • Distrubute your app: this is the last XCode step. This part uploads you validated app to App Store Connect so that it can be processed. Click the 'Distribute App' button to start.
  • Since we are uploading to the App Store, choose the 'iOS App Store' radio button and click 'Next'.
  • Choose the 'Upload' radio button and click 'Next'.
  • Some processing will happen. Please wait.
  • A dialog like before will appear. Make sure that all the checkboxes are checked. The most important of these is the last one: Upload your app's symbols to received symbolicated reports from Apple. This is how you will debug the error reports you might receive from the Apple Review Team or crash reports from your live app. Without this, you will basically be groping in the dark if errors appear. So, check ALL the checkboxes.
  • Choose the relevant distribution certificate and distribution profile from the drop-downs and click ‘Next’.
  • Wait while more processing happens.
  • The dialog from before will eventually appear after a bit of processing. This dialog will still show your app and all the embedded frameworks that will be uploaded. Click the ‘Upload’ button to continue.
  • The uploading process will commence. This will take anything from 10 to 40 minutes depending on how large your app is, your internet connection and the number of requests on App Store Connect. Please wait.
  • FiNALLY, your app has been uploaded. Success! You can click 'Done' and close all the XCode windows.

Add your build and submit

  • You will receive an email when your app has been processed. This can take anything from 10 minutes to 3 days. Generally, it takes around 20 minutes. If there is anything wrong with your app, you will also be notified. Generally, after a successfully processed build, you will get an email like in the image below.
  • Go back to your app version's build section and you will notice that a '+' button is now visible. Click it.
  • Choose the radio button next to the build you just uploaded and click done.
  • Click the 'Save' button.
  • Make sure that all your app's details have been filled in. Click the 'Submit For Review' button and follow the prompts. Congratulations! You have now submitted you app. I wish you success with your new app.

Thabo David Klass is a coder and co-founder at Spreebie, creator of PicShip. Download the productivity app PicShip that helps you manage your relationships and life with videos and pictures. Download it by clicking HERE.

If you found this tutorial helpful, please click the clap 👏 button below a few times to show your support and share it with your friends! Thank you, :). ⬇⬇

--

--