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

IosIos ProvisioningAd Hoc-Distribution

Ios Problem Overview


What is the difference between a development provisioning profile and an ad hoc provisioning profile?

Couldn't we always use the ad hoc profile for everything but the store?

Ios Solutions


Solution 1 - Ios

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.

Solution 2 - Ios

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBobby BruckovnicView Question on Stackoverflow
Solution 1 - IosDaniel MartínView Answer on Stackoverflow
Solution 2 - IosMussa CharlesView Answer on Stackoverflow