- About the iOS Provisioning Portal
- The Provisioning Process: A Brief Overview
- Setting Up Your Development Machine
- Setting Up Your Device
- Using the iOS Provisioning Portal
- Summary
The Provisioning Process: A Brief Overview
Provisioning a new device is not difficult in and of itself, but there are a number of steps that must be performed first. You must be a paid member of the iOS Developer Program or be a team member of a company that is a paid member. You must request and install a development certificate on your development machine. You must register your device ID. You must create an App ID. You must create and install a development provisioning profile. All of this must be done before you can provision your iPad and run your application on it.
Luckily you do not have to perform each of these steps often. Some of the steps, such as requesting and installing a development certificate, need to be done only once a year, and Xcode performs other steps for you as needed. Still, knowing about each step helps when a problem does come up, and yes, you will encounter a problem with the process at some point in your iOS career. It’s just the nature of writing apps for mobile devices.
You’ve had a number of new terms thrown your way, such as device ID, App ID, and provisioning profile, but what exactly are these?
What Is a Device ID?
A device ID, also known as the Unique Device Identifier or UDID for short, is a 40-character string that uniquely identifies the device. The UDID is tied to a single device; no two devices will ever share the same device ID. The device ID is added to a provisioning profile. This restricts applications built with the provisioning profile to run on only the devices associated to the profile.
You register devices in the iOS Provisioning Portal. You can register up to 100 devices per year. The devices you register are for development and testing purposes only. You do not register the devices of your customers who download and install your application through the App Store.
Registering a device counts toward your yearly limit even if you remove the device. Say you register your iPad, then delete it from the list of registered devices. It still counts toward your annual limit of registered devices. If after deleting your iPad UDID from the list you decide to add it back, it will count again toward your yearly limit. Put another way, deleting a device does not reduce the number of registered devices for the year.
What Is an App ID?
The App ID is used during the development and provisioning processes to share Keychain data among a suite of applications, and it is used for document sharing, syncing, and configuration of iCloud. The App ID also allows the application to communicate with the Push Notification Service and external hardware accessories.
The App ID is the combination of a Bundle Seed ID and a Bundle Identifier. The Bundle Seed ID is a universally unique, ten-character, alphanumeric string. Its value is generated by Apple within the iOS Provisioning Portal. The Bundle Identifier is a string value you add to your application bundle. The Bundle Identifier is used by the operating system to identify your application for tasks such as applying application updates.
The common naming convention for the Bundle Identifier is the reverse domain name style. If your company name is Acme and your application name is Awesome App, you would define the Bundle Identifier as com.acme.awesomeApp.
The Bundle Identifier portion of the App ID can contain the wildcard character (*). The wildcard character, if used, must be the last character of the Bundle Identifier, for example, com.acme.*. Using the wildcard character allows the App ID, and its associated provisioning profiles, to be used with multiple applications.
A wildcard App ID is convenient because it can be used for multiple applications. Xcode’s Organizer window creates a wildcard App ID that can be used by any application. The App ID looks like the last example in Table 6.1.
Table 6.1. App ID Examples
App ID |
Remarks |
ABCDE12345.com.acme.awesomeApp |
An explicit App ID for Acme’s Awesome App |
ABCDE12345.com.acme.* |
A wildcard App ID for Acme applications |
ABCDE12345.* |
A wildcard App ID for all applications |
You can also create an explicit App ID. An explicit App ID restricts the provisioning profile to a single application. Certain Apple services such as Push Notification and In App Purchase require an explicit App ID. If you plan to use an Apple service, you must use an explicit App ID.
What Is a Development Provisioning Profile?
A development provisioning profile ties developers, devices, and App IDs to a development team. A provisioning profile makes it possible for the developer to install and run the application on a device for the purpose of debugging and testing. To make this possible, the development provisioning profile must be installed on the device. A device, however, can contain more than one development provisioning profile.
Now that you understand the pieces, let’s get your development computer and device ready.