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 key technologies and services, such as iCloud and Game Center, you must join an Apple Developer Program. You should join a program even if you distribute a Mac application outside of the Mac App 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, 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 technologies and to submit new apps and updates.

Add Store Capabilities 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 technologies and 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, you should complete the configuration of your Xcode project. Your final Xcode project should contain required app icons and launch images, contain additional entitlements for technologies you add, 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 it to testers. You first create a special profile—an ad hoc provisioning profile—to ensure that test versions of your app aren’t copied and distributed without your knowledge, and then collect device IDs from testers you’ve selected.

Submit and Release Your App

Submitting your app to the store is a multistep process. First, you sign in to iTunes Connect, and enter necessary information to change the state of your app record to “Waiting for Upload” or later. If you’re selling your app on the store, you also enter the information for your reimbursement in iTunes Connect. Then you create an archive and sign it with your distribution certificate in Xcode. Last, you submit your app using Xcode or Application Loader. When your app is approved, you use iTunes Connect to release it by setting the date when the app will be available to customers. If you’re distributing your Mac app outside the store, you follow a slightly different process.

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 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 or Mac Developer 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 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 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 store-specific technologies

“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 Your iOS App”

../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”

../Art/checkbox_unchecked_2x.png

Release your app by setting the availability date

“Releasing and Updating Your App”

“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”

If you’re a team member for a company that wants 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

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 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 for Mac Apps,” you don’t need to read this guide.

See Also

You should already be familiar with the software and tools you use to write code before reading this guide. If not, there are a number of platform-specific tutorials you should read first. 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.

iOS

Mac

To get started . . .

Start Developing iOS Apps Today

App Distribution Quick Start

Start Developing Mac Apps Today

App Distribution Quick Start

To learn more about technologies . . .

iOS Technology Overview

iOS App Programming Guide

Mac Technology Overview

Mac App Programming Guide

To learn about the user interface guidelines . . .

iOS Human Interface Guidelines

App Store Review Guidelines for iOS Apps

OS X Human Interface Guidelines

App Store Review Guidelines for Mac Apps

To learn more about tools . . .

Xcode Overview

iTunes Connect Developer Guide

iOS Simulator User Guide

Using Application Loader

Xcode Overview

iTunes Connect Developer Guide

Using Application Loader