React Native ~ iOS Provisioning Items - rohit120582sharma/Documentation GitHub Wiki

App ID

An app ID is a unique identifier for your application. This is how iOS identifies your application. In addition, Provisioning Profiles need to know your App Bundle ID in order to allow it to run. So it is important to keep your App ID in your apple developer portal, and your App Bundle ID in your iOS project settings the same. The App Bundle ID must be in reverse DNS format, such as com.CompanyName.AppName.


Distribution Certificate

This is a security certificate that is unique to you, and is issued by Apple. This is what apple uses to uniquely identify you as a developer or publisher of an app.

The certificate contains a public/private key pair.

CSR (Certificate Signing Request) - A CSR or Certificate Signing request is a block of encoded text that is given to a Certificate Authority when applying for a certificate. It also contains the public key that will be included in the certificate. A private key is usually created at the same time that you create the CSR, making a key pair.

There are also two types of signing certificates:

  • Development certificates: They should be use for individual developers who are actively debugging and developing an application. This gives developers the flexibility to constantly re-deploy apps to their test devices and debug code through their IDE such as Xamarin Studio, Visual Studio, or XCode. They are not meant to identify you as an app publisher in the App Store. Apple enforces this by not allowing Production Provisioning Profiles to be signed by Development certificates.
  • Production certificates: They should be used in either a Production setting (your final build for the App Store), or a QA build that is distributed through Apple’s TestFlight Beta or another app test distribution system. These certificates identify you as an App Store Publisher to Apple or as a Test Distributor and can only be used with Production Provisioning Profiles.

UDIDs

UDID stands for Unique Device Identifier. This is a string that uniquely identifies an iOS Devices. All iOS devices have UDIDs programmed in their firmware. They cannot be changed, and no device shares the same UDID. A provisioning profile needs a list of UDIDs so that it knows which devices the app is allowed to run on. If the UDID of the device is not listed in the provisioning profile UDID list, then iOS will not allow the app to install or execute.


Entitlements

You can think of Entitlements as special permissions, or capabilities an app needs to interact with other Apple services that are external to your applications. For example, Push Notifications is an external Apple service that is independent of your application. Because iOS applications are sand-boxed, it can’t directly interact with other Operating System services, such as Push Notifications without an Entitlement. In order for your app to receive Push Notifications, your provisioning profile must have the correct Entitlement enabled.

⚠️ **GitHub.com Fallback** ⚠️