What are the differences between Provisioning Profiles?
Asked Answered
T

2

67

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?

Tigon answered 12/5, 2013 at 10:45 Comment(0)
R
49

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.
Rebak answered 12/5, 2013 at 11:8 Comment(7)
Daniel, could you expand more the second bullet point? Am I not giving the same rights to betatesters with an ad hoc profile?Tigon
Also you don't need to add the QA team and betatesters to the organization. Just like for ad hoc you can add the UUIDs.Tigon
@BobbyBruckovnic With a development profile they can debug the application.Bendy
And you need to add them to the iOS developer portal (and the certificates installed on their keychain), or they won't be able to run the app on a device. UUIDs are enough for ad-hoc because you are signing the app on behalf of your organization, not an individual.Bendy
Ok, there is something that I'm not getting. For instance if I would like to let you test an Iphone app I wrote. I would need to add your UUID to my devices list. Then I would be able to send you the .ipa signed with my development certificate and it would work on your device. Why would this be a bad policy? Can you extract the provisioning profile and do any damage? Other potential problems. Also how can anyone debug an app without the development certificate, only using the development provisioning profile?Tigon
I completely agree with Bobby's point. Could anyone add on top of that?Pyroxenite
- ipa built with Individual ad hoc provisioning profile can be installed on only registered devices - ipa that is built with ENTERPRISE ad hoc provisioning profile can be installed on any devicePolynesia
D
34

All Types of Provisioning Profiles explained in summary

Provisioning Profile simple definition

Provisioning profiles are used to authorize a set of known iOS devices to run and install a given iOS app. If a target device has a profile installed matching its 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: Used to distribute the app to a known finite set of iOS devices outside the App Store. These are very commonly used to distribute an app to testers via a third party testing service.
  3. Enterprise: Enables large enterprises to distribute in-house applications to enterprise approved devices in a manner which is independent of the App Store.
  4. App Store: Used for App Store or TestFlight.
Diarist answered 15/12, 2019 at 11:57 Comment(2)
Is it true, that on every bullet point, except for 4 the app will expire after 90 days?Priebe
Hi, @Priebe If you distribute your app to the App Store, the app will function as long as your developer account is active. For TestFlight yes, it's 90 days, However you can resubmit a new build to get more 90s over and over before the end of the previous 90 days. For Ad Hoc, I read here it's limited for 1 year. For Enterprise and other types of certificates I recommend reading official Apple Documentation hereDiarist

© 2022 - 2024 — McMap. All rights reserved.