Submit App to iTunes App Store - A Comprehensive Guide

Submitting Your First iOS App to the iTunes Store
Having successfully coded your initial iOS application, the next logical step is its upload and submission to the iTunes Store. However, as recent experience demonstrates, this process isn't always straightforward.
While Apple’s Xcode 4.2 development tools have notably simplified aspects of the submission workflow, it can still present challenges, particularly for first-time developers.
A Comprehensive Overview of the Submission Process
The scope of this topic is extensive, and a single tutorial cannot address every possible scenario or issue. This article aims to provide a broad understanding of the entire submission process.
It will highlight potential areas where developers might encounter difficulties, offer helpful tips, and detail common obstacles that can require significant troubleshooting.
Key Areas to Consider
- Understanding the Requirements: Familiarize yourself with Apple’s App Store Review Guidelines.
- Provisioning Profiles & Certificates: These are essential for signing your application.
- App ID Creation: A unique identifier for your application.
- iTunes Connect Setup: Managing your app’s metadata, pricing, and availability.
- Archiving and Validation: Preparing your app for submission and ensuring it meets Apple’s standards.
- Submission Process: Uploading your app through Xcode or Application Loader.
Successfully navigating these areas is crucial for a smooth submission experience.
Potential Pitfalls and Troubleshooting
Be prepared to encounter unexpected issues during the submission process. Common problems include certificate invalidation, provisioning profile mismatches, and app store review rejections.
Thorough testing and careful attention to detail can significantly reduce the likelihood of these issues. Detailed error messages from Xcode and the App Store Connect portal are invaluable resources for diagnosis.
Remember that the review process can take time, so patience is key. Addressing any feedback from Apple promptly and accurately will expedite the approval process.
Initiating the App Submission Process
A paid iOS developer account is a prerequisite for submitting applications to the iTunes App Store, regardless of whether they are free or commercial – the annual fee is $99. Confirm that the Apple ID associated with your account contains current and accurate information, particularly the registered address.
Address and identity verification will be required, typically through submitting documentation like a passport copy and a utility bill via fax. Should any uncertainties arise, contacting developer support for your region is recommended; the UK support team, for instance, proved exceptionally helpful in facilitating the transfer of a Japanese Apple ID to a UK address.
It is presumed that you have an application that has undergone thorough testing within the simulator, free from bugs and memory leaks. Achieving this level of stability can be a significant undertaking, but falls outside the scope of this guide. It’s vital to resolve any critical compilation errors before proceeding, although minor "semantic issues" may be permissible.
Rigorous testing is paramount before considering your app ready for release. Tasks such as icon creation and debugging are not covered in this tutorial.
The following outlines the key steps involved in the submission procedure:
- Generate a unique App ID specifically for your application and update the corresponding bundle identifier within Xcode.
- Establish a secure Distribution Certificate for your developer account.
- Construct a Provisioning Distribution Profile tailored to your app.
- Digitally sign your application utilizing the distribution profile.
- Create an archive of your app, configuring Project to Skip Install-> Yes and Target to Skip Install -> No.
- Register your app on iTunes Connect, providing essential metadata and sales details.
These steps are primarily executed within the Provisioning Portal, Xcode, the Keychain Access application, and iTunes Connect.
Establishing an App ID
Initially, the creation of an App ID is required – a distinct identifier assigned to your application. Navigate to the iOS Provisioning Portal, accessible via the right-hand side link after logging into the iOS Developer site, and select App ID from the sidebar menu.
Creating a New App ID
Initiate the process by clicking the button designated for creating a new app ID. The initial description field serves as a reference name for your convenience.
The bundle identifier functions as a coded name for your application, typically structured as your company domain (reversed), followed by a period and the application's name.
For instance:
com.makeuseof.demoapp
Configuring the Identifier in X-Code
Within X-Code, access Target -> Summary and modify the Identifier to align with the previously determined value (com.whatever).
This ensures consistency between your app's configuration and its designated App ID.
Generating a Distribution Certificate
A distribution certificate, securely stored within your developer profile, serves to verify your identity as a developer and digitally sign your application code. While a comprehensive guide to this process is available on the Distribution section of the Provisioning Portal, a streamlined approach is outlined below.
Initial Keychain Access Configuration
- Launch Keychain Access.
- Within Preferences, disable both OCSP and CRL.
These settings are crucial for the certificate request process.
Requesting the Certificate
- From the Keychain Access menu, select Certificate Assistant -> Request Certificate from Authority.
This initiates the certificate signing request (CSR) process.
CSR Details and Creation
- Enter your email address; a Certificate Authority (CA) email is not required.
- Choose Saved to Disk as the destination.
- Select Let me specify key pair information, then click Continue.
Specifying key pair information allows for customized security settings.
- Opt for a key size of 2048 bits and the RSA algorithm.
- Proceed by clicking Continue.
This configuration generates a .CSR file, which will be saved to your desktop.
Uploading and Activating the Certificate
- Navigate to the Provisioning Portal and select Certificates -> Distribution -> Add Certificate.
- Upload the .CSR file you created.
The system will then process your request.
- Approval may take a short period.
- While awaiting approval, download and install the WWDR intermediate certificate by simply double-clicking the downloaded file.
Installing the intermediate certificate ensures proper trust validation.
- Refresh the page in the Provisioning Portal.
- Your distribution certificate should now be available for download.
- Install the downloaded certificate.
Securing Your Private Key
As a final, vital step, open Keychain Access.
- Highlight the newly installed private key.
- Select Export Item from the menu.
Important: Securely back up this key in a safe location. Losing this key will prevent future app submissions if you reinstall your operating system or work on different machines.
Establishing a Distribution Provisioning Profile
The creation of numerous certificates and profiles is inherent in this process. Patience is appreciated as we proceed.
Within the Provisioning Portal, navigate to Provisioning -> Distribution and initiate the creation of a new profile. Select App Store as the intended distribution method, assign a descriptive profile name, and correlate it with the App ID previously established.
Following submission, a brief refresh of the page will reveal the profile's availability for download and installation. This profile will be automatically integrated into XCode, requiring no further manual intervention.
Verification of successful integration can be performed by accessing the Window -> Organizer -> Devices tab within XCode. From the sidebar, select Provisioning Profiles to view the newly added profile.
This profile is essential for preparing your application for release on the App Store.

Verifying Code Signing and Build Configurations
Before proceeding, it's crucial to open XCode and locate the Code Signing settings within the Build Settings section. Confirm that your Distribution Profile, which was recently installed, is designated for the Release configuration for both the Project and the application Target.
Proper code signing is essential for successful app distribution.

Next, choose iOS device as the active build scheme. This prepares the project for the Archiving process.

Archiving creates a packaged version of your app ready for submission.
Creating an App Archive
You are nearing completion! Prior to submitting your application, generating an archive of the entire project is necessary. This archive represents the definitive file set destined for upload to iTunes Connect.
Provided all preceding steps have been executed correctly, the initial action involves verifying the existence of an Archive scheme configured for building the release version.
Access Edit Schemes from the upper-left corner. Confirm that the Archive scheme is set to Release, or establish a new scheme with the corresponding configurations. Utilizing the Auto-Create Schemes function within manage schemes will also accomplish this.

Subsequently, a potentially challenging step – one that previously caused significant difficulties – involves adjusting the Build Settings for the project if your application incorporates external libraries. Set this to Skip Install.
To achieve this, select the main project (not the target) -> Build Settings -> type Skip into the search bar, and ensure Yes is selected for the Deployment -> Skip Install setting.

The TARGETS Build Settings for Skip Install should remain at No. It’s crucial to double-check this configuration: Project Skip Install, Yes; Target Skip Install, No.

This nuance proved problematic because many tutorials simply advised setting "Skip Install to Yes." However, with both settings enabled, the archive failed to generate as expected.
The concluding action is to construct your deployment archive for uploading. Navigate to Product -> Archive in the menu. Upon completion, your application should be accessible within the Organizer -> Archives section.

Launching Your App on iTunes Connect
iTunes Connect serves as the commercial platform for the app store, managing aspects like app sales, geographic distribution, descriptive content, and visual assets. The process is relatively straightforward, yet involves a substantial amount of information input. It’s here that key decisions are made regarding app pricing – whether to sell, offer for free, or integrate advertising.
Furthermore, this stage necessitates the provision of banking details and the completion of any required agreements prior to release. To begin, navigate to iTunes Connect and select Add a New App. From the provided dropdown menu, choose the bundle identifier you previously established.
App Submission and Upload
The subsequent steps are largely intuitive, with Apple providing clear guidance at each stage. Once your app is added, its status will initially be Waiting for Upload.
At this point, return to the XCode Organizer -> Archives section and initiate the upload process by clicking Submit. You will be prompted to authenticate and confirm the app you are uploading.
Following this, the app enters a review period, typically lasting several weeks, before approval is granted.
A New Experience and the Importance of Rigor
Submitting an app can be a novel experience, potentially overwhelming for first-time developers. Hopefully, this overview provides a more transparent understanding of the procedure. Many find the initial stages challenging, relying on a trial-and-error approach.
However, it's important to recognize that this thorough review process is crucial for maintaining the security and integrity of the App Store. This rigorous vetting prevents potentially harmful applications and malware from reaching users, a benefit for everyone.
We encourage you to share your own experiences with app submission in the comments below.
- iTunes Connect: The platform for managing app sales and distribution.
- Bundle Identifier: A unique identifier for your app.
- XCode Organizer: Used to archive and submit your app build.





