Provisioning unveiled

I remember the first time I got to provision a device to run my application (about a year ago). And it was complicated to get the idea behind all the provisioning process.

This is precisely why I decided to write about it. Maybe you are lucky enough to read this before your journey.

Obviously you can download and read the iOS Developers Program Manual to understand how this process works, but I really think that if you want to get started, this post is very useful.

So let’s get started!

…

All iOS applications must be signed by a valid certificate before they can run on a device. This certificate is a file that identifies you as a developer and it is used by Xcode to sign your app.

Each application has it’s own App ID, that is an unique identifier that enables your app to use Apple Push Notification, In App Purchase, Game Center and Keychain Data sharing with other applications. This identifier consists of an unique 10 character “Bundle Seed ID” prefix generated by Apple and a “Bundle Identifier” suffix that is specified by you (and should match with the Bundle Identifier property from your application’s plist file).

In order to debug your app in the device, you need to create a Provisioning Profile and install it on your device (apart from the Certificate). This provisioning profile is a file that ties a set of developers (certificates) and devices, that are able to develop and run (respectively) a given app.

Meaning that each device has a unique identifier too, that is called UDID and consists of a 40 character string that is similar to a serial number.

So, the basic idea about the provisioning process is to enable a device to run an app that was developed by you, and this is accomplished through the Provisioning Profile and your Certificate.