App Store Icon

in iOS, Xcode

Submitting iOS app to the App Store


Uploading application to the App Store has always been a pain in the ass, for developers who just started developing iOS. To be honest, working with provisioning profiles for somebody who never saw anything similar was not the most user friendly concept. Once you get how everything, works, and what file you have to download and what to upload it gets boring and so time consuming it almost makes you rage quit and not upload the app at all.

Luckily, with the release of new (buggy) Xcode 8, this process has been simplified in a lot of ways, although there’s a lot of space for improvement. In short, here’s a tutorial in how to upload an app to the App Store in 4 steps using Xcode and it’s developer tools.

Setup provisioning profiles

In previous versions of Xcode, as I explained in the introduction, setting up provisioning profiles was done manually. You generate distribution profile, download it and then distribute your app. This had to be done for every development machine which was extremely time consuming. However, in most situations nowadays, Xcode 8 will do most of this work for you. Make sure you sign in with the account which will be used for distributing the app (go to Xcode -> Preferences -> Accounts) and then simply select “Automatically manage code signing” in Targets -> General.

Xcode 8, automatically manage sign in

Xcode 8, automatically manage sign in

Archive the code

Once the provisioning profiles are all set, next step in the process of submitting the app is to archive your code. From the dropdown of devices and simulators select option “Generic iOS device”. Then, under “Product” menu select option “Archive”.

Xcode 8, archiving the code

Xcode 8, archiving the code

In case where the submission is an update to the existing app on the store, make sure that the build number is higher than the current and that the version number is different. For example, current application has build number 30 and version label 1.0. The next update should have at least build number 31 and version label 1.0.1. In most cases, you should add third decimal to your version in case of some urgent bug fixes or small patches, second decimal is mostly reserved for feature updates while first decimal is incremented in case of a major app update.

Export IPA file

Once it’s done, you can find your archive in the Xcode organizer. This is where all your previous versions and archive builds are saved and organized in case you do not delete them. You will immediately notice a large blue button saying “Upload to App Store…” however in 9/10 cases this will not work due to various reasons (Xcode bugs mostly). Workaround is to export your archive and upload it using another Xcode tool called Application Loader. However, since Application loader uploads IPA files to the App Store, archive needs to be exported to the correct format. This is a trivial task which might take ~ half an hour. Click on the “Export” button in the right side panel.

Exporting IPA file

Exporting IPA file

Upload IPA file using Application Loader

Once the IPA file is generated, open Xcode, navigate to developer tools and open Application Loader.

Application loader

Application loader

If you have multiple accounts in your Xcode, you will be asked to choose. Naturally pick the one you used for code signing in the first step. Pick “Deliver your app” and upload the code. Once the upload is done it may take up to one hour to appear in your build list on iTunes Connect.

Application loader interface

Application loader interface

Depending on the size of your app and the internet connection upload may take a while. And that’s it, in short those are the basic steps necessary to upload your app to the App Store or Test Flight. If you have any questions feel free to write in the comments or on social networks.


  • Doorie Lee

    Can I not edit the app information and update screenshots for an app that is “ready for sale” and currently on the app store? Do I need to “create a new version.” I’d rather not push a new update when all I want to do is edit the app store listing information

    • hadzijalagic

      Hi Doorie, unfortunately not because then you could potentially publish images with copyright, inappropriate text and similar things which Apple reviews in the process.