About App Distribution

This guide contains everything you need to know to distribute an app through the App Store or Mac App Store.

../Art/1_administration_tasks_2x.png../Art/1_administration_tasks_2x.png

You perform these tasks using Xcode features and several web tools available only to members of an Apple Developer Program. Before you use certain app services, such as iCloud and Game Center, you must join an Apple Developer Program. Join a program even if you distribute an application outside of the store so that customers know your application comes from a known source.

At a Glance

This guide explains how to develop, test, submit, and release your iOS and Mac apps. By understanding your tools and the distribution process, you’ll be able to get your new app and updates to your customers faster.

Enroll in an Apple Developer Program to Distribute Your App

Joining an Apple Developer Program is the first step to submit your apps on the App Store and Mac App Store, to distribute iOS in-house apps, or to sign apps that you distribute outside the Mac App Store with a Developer ID. As a member, you have access to the resources you need to configure app services and to submit new apps and updates.

Add Services to Your App

Apple provides advanced, integrated services for certain types of apps, such as games and Newsstand apps, and for additional sources of revenue, such as In-App Purchase and iAd Network. These app services require additional configuration—both during development and later, when you submit your app to the App Store or Mac App Store. Good examples are Game Center and iCloud. In this guide, you’ll learn how to add these capabilities to your app.

Prepare Your App for Distribution

Before you distribute your app for testing or submit it to the store for approval, complete the configuration of your Xcode project. Your final Xcode project should contain required app icons and launch images, contain additional entitlements for app services you enable, and specify which devices and operating systems your app supports.

Test iOS Apps Across Numerous Devices

If you have an iOS app, make sure you test it not only in iOS Simulator but on all the devices and releases that your app supports. Testing on more than one kind of device ensures that your app operates exactly as you thought it would, no matter which device it’s running on. You can register up to 100 devices per membership year for development and testing. After testing an app yourself, distribute a beta release of your app to testers. You can distribute a beta app yourself or use iTunes Connect to manage beta testing. For iOS apps distributed through TestFlight and the App Store, Apple provides a service that collects and aggregates crash logs that you can download and analyze in Xcode.

Submit and Release Your App on the Store

Submitting your app to the App Store or Mac App Store is a multistep process. First, you sign in to iTunes Connect to create an app record and enter necessary information. If you’re selling your app on the store, you also enter the information for your reimbursement in iTunes Connect. In Xcode, you create an archive and sign it with your distribution certificate. Then you upload your app using Xcode or Application Loader. Use iTunes Connect to submit your app to the store. When your app is approved, use iTunes Connect to release it by setting the date when the app will be available to customers.

Distribute Your App Outside the Store

Alternatively, join the iOS Developer Enterprise Program and distribute your in-house applications directly to employees. To distribute a Mac app outside of the Mac App Store, request and sign your application with a Developer ID certificate. If you’re distributing your application outside the store, you follow a slightly different process. You don’t have access to iTunes Connect and some app services so can skip those steps.

Maintain Your Certificates, Identifiers, and Profiles

Apple implements an underlying security model to protect both user data and your app from being modified and distributed without your knowledge. Throughout the development process, you create assets and enter information that Apple uses to identify you, your devices, and your apps. Xcode automatically creates many certificates, identifiers, and profiles for you as you need them. Xcode maintains the App IDs and provisioning profiles it creates for you, but not the other assets. During your Developer Program membership, you may maintain various other certificates, identifiers, and profiles yourself.

How to Use This Document

How you use this document depends on the type of developer program you join (iOS Developer Program, Mac Developer Program, or iOS Developer Enterprise Program) and your role (team agent, admin, or member). For Mac apps, how you use this document also depends on whether you choose to submit your app to the Mac App Store or distribute it outside of the Mac App Store.

First choose a type of account (individual or company) and a developer program. If needed, create an Apple ID and join a developer program, as described in Managing Accounts. If you enroll in a developer program as an individual, you’re the team agent for a one-person team. If you enroll in a developer program as a company, you’re the team agent and can invite other people to join your team, as described in Inviting Team Members. You specify whether a person is a team admin, who can perform most of the same tasks as a team agent, or a team member who can’t create assets in Member Center. To learn more about team roles, read About Apple Developer Program Team Roles and Privileges.

Then refer to the tables in this section for the tasks you perform depending on your role and developer program membership. (Refer to the glossary for the definitions of terms used in this guide.)

If you’re a team agent or admin and want to submit your app to the App Store or Mac App Store:

To learn how to

Read

../Art/checkbox_unchecked_2x.png

Add your Apple ID to Xcode

Adding Your Apple ID Account in Xcode

../Art/checkbox_unchecked_2x.png

Set your bundle ID and assign your project to a team

Configuring Identity and Team Settings

Configuring Your Xcode Project for Distribution

../Art/checkbox_unchecked_2x.png

Configure app services

Adding Capabilities

../Art/checkbox_unchecked_2x.png

Launch your app on devices

Launching Your App on Devices

../Art/checkbox_unchecked_2x.png

Perform final configuration steps before distributing your app

Configuring Your Xcode Project for Distribution

../Art/checkbox_unchecked_2x.png

Test your iOS app on different devices

Beta Testing iOS Apps

../Art/checkbox_unchecked_2x.png

Fix problems during testing

Analyzing Crash Reports

../Art/checkbox_unchecked_2x.png

Upload your app to iTunes Connect for approval

Submitting Your App to the Store

../Art/checkbox_unchecked_2x.png

Release your app by setting the availability date

Releasing and Updating Your App on the Store

Managing Your App in iTunes Connect

../Art/checkbox_unchecked_2x.png

Maintain your Apple Developer Program assets

Maintaining Your Signing Identities and Certificates

Maintaining Identifiers, Devices, and Profiles

../Art/checkbox_unchecked_2x.png

Fix issues with your code signing assets

Troubleshooting

If you’re a team agent or admin for a company:

To learn how to

Read

../Art/checkbox_unchecked_2x.png

Add team members and assign roles for company accounts

Managing Your Team in Member Center

If you’re a team member for a company who is developing an app for the App Store or Mac App Store:

To learn how to

Read

../Art/checkbox_unchecked_2x.png

Add your Apple ID to Xcode

Adding Your Apple ID Account in Xcode

../Art/checkbox_unchecked_2x.png

Set your bundle ID and assign your project to a team

Configuring Identity and Team Settings

Configuring Your Xcode Project for Distribution

../Art/checkbox_unchecked_2x.png

Request your development certificate and ask your team agent or admin to approve it

Approving Development Certificates

../Art/checkbox_unchecked_2x.png

Ask your team agent or admin to register your device

Registering Team Member Devices

../Art/checkbox_unchecked_2x.png

Launch your app on devices

Launching Your App on Devices

../Art/checkbox_unchecked_2x.png

Fix issues with your code signing assets

Troubleshooting

If you’re a team agent or admin in the iOS Developer Enterprise Program:

To learn how to

Read

../Art/checkbox_unchecked_2x.png

Manage your certificates and distribute your app

Distributing iOS Developer Enterprise Program Applications

If you’re a team agent and want to distribute your Mac application outside of the Mac App Store:

To learn how to

Read

../Art/checkbox_unchecked_2x.png

Perform final configuration steps before distributing your app

Configuring Your Xcode Project for Distribution

../Art/checkbox_unchecked_2x.png

Create a Developer ID-signed application

Distributing Applications Outside the Mac App Store

../Art/checkbox_unchecked_2x.png

Request additional Developer ID certificates

Requesting Additional Developer ID Certificates

For Mac apps, if you select None as the distribution method, as described in Choosing a Signing Identity (Mac Only), you don’t need to read this guide.

See Also

This guide assumes you are already familiar with the software and tools you use to write code. If not, start by reading a number of platform-specific tutorials. Next, read the technology overview documents followed by the appropriate human interface guidelines for your platform, and most important, the guidelines for submitting your app to the store.

For more information on the app review process, go to App Review.