- 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 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 installed a development provisioning profile. All of this must be done before you can provision your iPad and run your application on your own iPad.
Luckily you do not have to perform each of these steps often. Some of the steps, such as requesting and installing a development certificate, are steps you do 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.
I’ve throw a number of new terms your away, 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 provision profile to run on only the devices associated to the profile.
You registered devices in the iOS Provisioning Portal. You can register up to 100 devices per year. The devices you registered 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 towards 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 towards 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, counting twice towards 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 the combination of a Bundle Seed ID and a Bundle Identifier. The Bundle Seed ID is a universally unique, 10-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 to use the reverse-domain style. If your company name is Acme and your application name is Awesome App then you would define the Bundle Identifier as com.acme.awesomeApp.
The Bundle Identifier portion of the App ID can contain the wildcard character asterisk (“*”). 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.
Table 6.1. App ID examples.
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 |
A wildcard App ID is convenient to use 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.
You can also create an explicit App ID. An explicit App ID restricts the provision 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 then 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...