When starting with iOS development, I remember struggling with Apple’s certificates, provisioning profiles and identifiers. So did one of my friends for which I wrote a quick introduction that he thought could be useful to others.
So here is a quick explanation.
Bundle ID = Application ID = Identifier
Referenced under different names on XCode and the web interface, it is the unique ID of an application, for exemple at Fovea:
Certificate (or developer name under XCode)
The development certificate allows to sign any application (for which you have the source code), to install it on a device from a computer on which the certificate is installed (together with its associated provisioning profile). It’s always associated with the development provisioning profile (called iOS Team Profile). This certificate does not allow distribution of the App (Beta or AppStore).
To do so, one has to use a Distribution Certificate.
It is a file included in the Bundle of the application (the archive if you like). iOS with check the validity of the provisioning profile to authorise or not the execution of an app on the phone.
The development provisioning profile is managed by XCode, so it’s not to complicated (as it once was).
However, to distribute an app, you’ll have to create a distribution provisioning profile. It associates an App ID, a certificate and a list of device UDID. Here’s an example that I use for Beta distribution of Ali Hood:
Once created, it should be downloaded and clicked to install it on XCode. Then it can be defined a the provisioning profile in use from the XCode project settings.
To distribute on the AppStore, you’ll have to create a “AppStore” provisioning profile. For Beta distribution, create an “Ad Hoc” provisioning profile.