What Is a Provisioning Profile Used for When Developing iPhone Applications

What is a provisioning profile used for when developing iPhone applications?

A Quote from : iPhone Developer Program (~8MB PDF)

A provisioning profile is a collection of digital entities that uniquely ties developers and devices to an authorized iPhone Development Team and enables a device to be used for testing. A Development Provisioning Profile must be installed on each device on which you wish to run your application code. Each Development Provisioning Profile will contain a set of iPhone Development Certificates, Unique Device Identifiers and an App ID.
Devices specified within the provisioning profile can be used for testing only by those individuals whose iPhone Development Certificates are included in the profile. A single device can contain multiple provisioning profiles.

What is the Team Provisioning I have from scratch?

Team : - A kind of Development profile that’s managed by Xcode. Xcode automatically adds everyone’s cert to it and all UDIDs from devices as well.

What is the Team Provisioning Profile then?

To save you time, Xcode creates and manages a type of development provisioning profile, called a team provisioning profile, for you. The team provisioning profile allows all your apps to be signed and run by all team members on all your team’s devices. For an individual, the team provisioning profile allows all your apps to run on all your devices. Xcode also performs configuration steps for each app service you enable that requires some type of provisioning. Although Xcode simplifies this process, it helps to understand your code signing and provisioning assets and to know where they reside.

If it's kind of Development Provisioning, why can't I see it on Apple Developer console?

Xcode creates a team provisioning profile and its components as needed in your developer account. Xcode requests a development certificate for you if it’s missing. The development certificate is used in the team provisioning profile to identify you. A device must be registered to create a provisioning profile, so Xcode may ask you to connect an iOS or tvOS device. For Mac apps, Xcode automatically registers the Mac that is running Xcode.that's why you can't see it on Apple Developer console

More check this : apple doc

iOS: What are DISTRIBUTION provisioning profiles used for?

Absolutely yes. The distribution profile is used for submission to the App Store. It does not have the 100 device limit that the development profiles have.

From the Tools Workflow Guide:

When you’re ready to share your app for user testing or for general distribution through the 
App Store, you need to create an archive of the app using a distribution provisioning
profile and send it to app testers or submit it to iTunes Connect. This chapter shows
how to perform these tasks.

iOS Development - Provisioning Profile with no device

Main purpose of the Development provisioning profile is to test our app on iOS devices, which is under development, Because iOS devices will install the app from Appstore & authorised developer account.

If you are not added any devices into your account then there is no point creating development provisioning profile. Because you can not use that certificate to install on any other devices. For simulator no need any certificate.

Apple document says : Before creating a development provisioning profile, verify that you have an App ID, one or more development certificates, and one or more devices.

Check App's provisioning profile in iPad

To elaborate a bit on @battlemonstr's answer, the provisioning profile is bundled with the .ipa when you package (in an embedded.mobileprovision file) so that the iOS device can install the PP on the device when the app is installed. After installation from the .ipa, the embedded PP is irrelevant - it becomes just another PP installed on the device. When you first try to run the app, iOS will check if there is a valid PP on the device that would allow the app to run. It can be the one installed with the app, but there is no reason it has to be. In other words, the installed app does not have anything that requires it to use the PP that was bundled with it in the .ipa file.

When you delete the app, it does not touch the PPs installed on the device. So if you installed a version of the app previously, and it had an embedded PP that didn't expire until the end of the year, installing a new version of the app with a PP that is already expired will not prevent the app from running, since the device has a PP that is valid for the app that won't expire until the end of the year.

You can see the provisioning profile on the device in the Xcode devices window. Right-click on the device and select "Show Provisioning Profiles..." Note that iOS will try to clean up old provisioning profiles that have expired from time to time, so some old ones might be gone.

Difference between Development and Distribution Provisioning Profile on Provisioning Portal?

Just to explain a bit more, the development provisioning profile is for testing your App on a device (iPad, iPhone, iPod Touch), and the distribution profile is used when you're submitting your application to Apple to get it onto the store.

Both profiles are linked to your account as well as keychains on your computer.

If you'd like to install your software on several devices without using the App Store, you'll have to create an Ad Hoc distribution profile with the device ID numbers, and install that profile as well as the software, on all of the devices.

Is iOS provisioning profile similar to Android Manifest File

A Provisioning Profile is part of iOS security. When the user launches an app, ios verifies the provisioning profile embedded in that app to determine if the app is allowed to run.

During development, apps contain a provisioning profile that lists the device ids that the app can run on (the developer registers these in the Apple developer portal) and signatures that verify that the developer has a valid certificate signed by Apple.

When the app is published to the App Store, this provisioning profile is stripped out and replaced by Apple with one that they sign which allows the app to run on any device.

The capabilities required by an app (such as access to the camera) are contained in the info.plist file and in the app code; the file specified the reason that is shown to the user but the code is responsible for requesting access. Simply declaring a usage string in info.plist will not prompt the user to grant the permission. This way, permission requests can be made at a time when the context is clear to the user. E.g. when they have tapped a "camera" button in the app.



Related Topics



Leave a reply



Submit