What is the difference between a Development Provisioning Profile and an Ad Hoc Provisioning Profile? What is the difference between a Development Provisioning Profile and an Ad Hoc Provisioning Profile? ios ios

What is the difference between a Development Provisioning Profile and an Ad Hoc Provisioning Profile?


An ad-hoc provisioning profile is used later in the development process, particularly when you want to distribute your app to a small or medium size group of testers that are not included in the iOS developer program for your organization. An app deployed with an ad-hoc provisioning profile will be almost identical to the version you submit to the App Store (ie. it will need a distribution certificate for push notifications to work, etc.)

Of course you could add your QA team and betatesters to the organization and use a development provisioning profile, but this approach has many disadvantages:

  • You may end up with many development certificates, making it difficult to manage them.
  • You are giving your betatesters the right to compile and run the app on a device. (This is a extremely bad policy.)
  • You want to test your app in the closest possible environment to the App Store environment. Development environments, like running the app from Xcode, can masquerade some bugs that will show up when you publish your app.


All Types of Provisioning Profiles explained in summary

Provisioning Profile simple definition/use
Provisioning profiles are used to authorizes a set of known iOS devices to run and install a given iOS app. If a target device have a profile installed matching it's own device Unique Device ID (UDID) and that of the app it is about to install then the device will be able to install the app otherwise the device won't be able to install the app.

Types Provisioning profiles and their use
There are 4 types: -
1. Development: - Used in development phase of the app to run the app on simulator and developer devices. (If a developer device is not in this list the in-development app can not be installed).

2. Ad Hoc: - Is provided to distribute the app to a known finite set of iOS devices outside the AppStore. These are very commonly used to distribute an app to testers via a third part testing service.

3 Enterprise:- Enable large enterprises to distribute inhouse applications to enterprise approved devices in a manner which is independent of the AppStore.

4 App Store:- Used for AppStore or for TestFlight.