iOS Developer Certificates, Provisioning Profiles and Application IDs

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:

 Application IDs

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.

Provisioning Profile

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.

I’m a consultant and developer for Mobile, Web, Games and Apps projects. I co-founded Fovea 8 years ago.

Tagged with: ,
Posted in Blog
4 comments on “iOS Developer Certificates, Provisioning Profiles and Application IDs
  1. Dao says:

    Thank´s for sharing this useful tutorial!

    The next best step would be to explain how to distribute in a adhoc mode and in a appstore mode

    Are testflight or hockeyapp (payfull) mandatory?

    • It sure is a good idea for a next tutorial.

      Neither TestFlight nor Hockeyapp are mandatory, iTunes can be used directly to install an AdHoc IPA file, but it’s certainly more complicated for your testers (thus the added value of those services).

      TestFlight also adds management of download permissions and notification of new beta releases, among other things that I found useful. Apparently HockeyApp is pretty similar, is it somehow better than TestFlight?

  2. Josh says:

    So do I need an MDM to administer configured profiles? As to say can I create a .mobileconfig file based on user inputs and then install on said users device within my app?

    • You’ll normally use directly to administer your profiles. I’ve seen in the documentation that ways to externally generate profiles exist, so maybe external tools exist, but I never dug into that.