In this blog we are going to learn how to create, install and export certificates and how to create provisioning profiles for your application. but before this we need to get knowledge about different types of membership programs for better understanding.
Understanding Apple Membership Programs
Apple Developer Program provides everything you need to build and distribute apps to Apple customers around the world.
See below image.
There are multiple types of membership programs available. As per your requirements you can enroll for individual program, organization program or educational institutions programs. Let’s start with organization.
Organizations
In organization there are 3 programs – developer, enterprise and MFi.
Apple Developer Program. [ 99 USD per year ]
- If you’re an organization interested in creating apps for distribution on the App Store for apple devices, enroll in the Apple Developer Program.
- Organizations can sell apps using their legal entity name.
- D-U-N-S number must required during the enrollment process. [ The D-U-N-S Number is a unique nine-digit number that identifies business entities on a location-specific basis. Assigned and maintained by Dun & Bradstreet (D&B), the D-U-N-S Number is widely used as a standard business identifier. ]
Apple Developer Enterprise Program [ 299 USD per year ]
- In enterprise program organizations can not distribute/publish apps to the App Store
- If your organization is looking to create own apps and distribute to your organization’s employee, enroll in the Apple Developer Enterprise Program.
- D-U-N-S number must required.
MFi Program [ free of cost ]
- Enroll this program if your companies manufacture electronic accessories that connect to Apple devices.
Individuals
Apple Developer Program. [ 99 USD per year ]
- If you are an individual person and want to distribute your applications to the App Store then enroll in this Apple Developer Program.
- Developers enrolled as individuals, will sell apps on the App Store using their personal name.
- No need of D-U-N-S number during the enrollment process.
Educational Institutions
iOS Developer University Program. [ free of cost ]
- This is a free developer program for higher education institutions looking to introduce iOS development into their curriculum.
- Any faculty and student can get access to the tools and resources needed to develop and install apps on Apple devices.
- D-U-N-S number must required.
Create Certificate
To create a development or production certificate we will need CSR file. so, first of all let’s create certificate Signing Request(CSR).
Create CSR File:
Open Finder, and then open Keychain Access from the Utilities folder.
Next, open Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority.
Enter the email address, and enter a common name. The common name can be anything you want. Check Saved to disk and then click Continue.
Give your CSR a helpful descriptive name, and choose the location to save it on your hard drive, then click Save.
Create Development Certificate
To run an app on an iOS device you need to create it with a development or an Ad Hoc distribution provisioning profile. To create a development provisioning profile, you need a development certificate signed by Apple. With this development certificate, you can code sign an app during development in order to deploy it on device.
You can create a development certificate in the iOS Dev Center only.
Step 1:
In the iOS Dev Center, click Certificates, Identifiers & Profiles. In the drop-down menu in the top left corner, verify that iOS, tvOS, watchOS is selected.
In the left-hand sidebar, select Certificates → Development. Click +
Step 2:
Select iOS App Development and click Continue.
Step 3:
On the About Creating a Certificate Signing Request (CSR) page, click Continue.
On the Generate your certificate page, click Choose File. upload CSR file which was created before. then click continue.
Step 4:
Click Download to download your certificate. Click Done
Create Production Certificate
To publish an app in the App Store or to distribute it to a limited number of devices, you need to build it with a distribution provisioning profile. To create a distribution provisioning profile, you need a production certificate signed by Apple. With this production certificate, you can code sign an app for publishing to the App Store, for in-house distribution or for distribution to limited number of devices.
You can create a production certificate in the iOS Dev Center only.
Procedure
- In the iOS Dev Center, click Certificates, Identifiers & Profiles.
- In the drop-down menu in the top left corner, verify that iOS, tvOS, watchOS is selected.
- In the left-hand sidebar, select Certificates → Production.
- Click +.
- Select the type of production certificate that you want to create and click Continue.
- If you are enrolled in the iOS Developer Program, select App Store and Ad Hoc and click Continue.
- If you are enrolled in the iOS Developer Enterprise Program, select In-House and Ad Hoc and click Continue.
- On the About Creating a Certificate Signing Request (CSR) page, click Continue.
- On the Generate your certificate page, click Choose File.
- Browse to the location where the CSR file for your certificate signing request is stored, select it and confirm the upload. [ If you don’t create CSR then, please see “Create CSR File” section of this tutorial]
- Click Continue.
Click Download to download your certificate.
Install & Export Certificates
Install:
- To install certificates Drag the certificate file onto the Keychain Access icon, or double-click the certificate file.
- Click the keychain pop-up menu, choose a keychain, then click OK.
- If you’re asked to enter the name and password for an admin user on this computer, enter it.
- now, open key chain you can see your certificate.
Export:
- In the Keychain Access window, left side under Keychains, click login, under Category, click Certificates, and then, select your code signing certificate.
- right click on selected certificate. as shown in below image, click on export certificates.
- Give your certificate a helpful descriptive name, and choose the location to save it on your hard drive, then click Save.
Maintaining Identifier and Provisioning Profile
App IDs:
Registering App IDs
- Before you can create a provisioning profile, you need to have a registered App ID.
- An app ID is a string used to specify an app, or set of apps. An app ID’s primary use is to specify which apps are authorized to be signed and launched.Let’s start to create App Id for your application.
In the iOS Dev Center, click Certificates, Identifiers & Profiles.
See the below image , In the drop-down menu in the top left corner, verify that iOS, tvOS, watchOS is selected. In the left sidebar, select Identifiers → App IDs. then Click +.
In the next screen you will be asked to create the App ID you want to use as well as the description you want to give it.Type a description for your app in the App ID Description text box. The description is visible in the iOS dev center only and will help you identify your App ID in the list of identifiers that are available to your Apple developer account.
Select the type of App ID that you want to create and provide a bundle identifier.
- To use one App ID with multiple provisioning profiles, register a wildcard App ID.
- If you want to build and publish an app with a unique App ID identifier and provisioning profile, register an explicit App ID
After that you will be brought to the confirmation screen. click on register button once you looked over it. then click on Done button. Now App Id has been created.
Deleting App IDs
In the iOS Dev Center, click Certificates, Identifiers & Profiles.
- Under Identifiers, select App IDs.
- Select the App ID you want to delete, and click Edit.
- Scroll to the bottom of the page, and click Delete.
- Read the dialog that appears, and click Delete.
Editing App IDs
In the iOS Dev Center, click Certificates, Identifiers & Profiles.
- Under Identifiers, select App IDs.
- Select the App ID you want to delete, and click Edit.
- now make changes you want in App Id.
- Click Done.
NOTE: If you edit App ID then, need to regenerate the provisioning profiles that use the App ID.
Provisioning Profiles
Development Provisioning Profile
- When you build an app with a development provisioning profile, you can debug it on device.
- The development provisioning profile is the only provisioning profile that enables debugging on device.
- With this type of provisioning profile, you can run your apps only on the devices included in the provisioning profile and you cannot publish apps in the App Store.
Requirements:
- Verify that you have a certificate for development created for your Apple developer account.
- Verify that you have registered an App ID for your app.
- Verify that you have registered at least one device with your Apple developer account.
Steps:
- In the iOS Dev Center, click Certificates, Identifiers & Profiles.
- In the drop-down menu in the top left corner, verify that iOS, tvOS, watchOS is selected.
- In the left-hand sidebar, select Provisioning Profiles → Development.
- Click +.
- Select iOS App Development and click Continue.
- Select an App ID to associate with the provisioning profile and click Continue.
- To be able to use one development provisioning profile across multiple apps, select a wildcard App ID, if available.
- Select one or more certificates for development to include in the provisioning profile and click Continue.
- Only certificates for development are listed.
- Select one or more devices to include in the provisioning profile and click Continue.
- Provide a name for the profile and click Continue.
- Click Download to download the provisioning profile.
Click Done.
App Store Distribution Provisioning Profile
- In the App Store you can publish only apps created with an App Store distribution provisioning profile.
- App Store distribution provisioning profiles do not contain provisioned devices.
- You can not debug on device apps that are created with this type of provisioning profile.
Requirements:
- Verify that you have a certificate for production created for your Apple developer account.
- Verify that you have registered an App ID for your app.
Steps:
- In the iOS Dev Center, click Certificates, Identifiers & Profiles.
- In the drop-down menu in the top left corner, verify that iOS, tvOS, watchOS is selected.
- In the left-hand sidebar, select Provisioning Profiles → App Store.
- Click +.
- Select App Store and click Continue.
- Select an App ID to associate with the provisioning profile and click Continue.
- To be able to use one development provisioning profile across multiple apps, select a wildcard App ID, if available.
- Select one or more certificates for production to include in the provisioning profile and click Continue.
- Only certificates for production are listed.
- Enter a name for the profile and click Continue.
- Click Download to download the provisioning profile.
Ad Hoc Distribution Provisioning Profile
- If you want to send out your app for testing to selected users or to develop a private app which is available to a limited number of devices, you can create it with an Ad Hoc provisioning profile.
- You cannot debug on device apps that are created with this type of provisioning profile.
Requirements:
- Verify that you have a certificate for production created for your Apple developer account.
- Verify that you have registered an App ID for your app.
- Verify that you have registered at least one device with your Apple developer account.
Steps:
- In the iOS Dev Center, click Certificates, Identifiers & Profiles.
- In the drop-down menu in the top left corner, verify that iOS, tvOS, watchOS is selected.
- In the left-hand sidebar, select Provisioning Profiles → Distribution.
- Click +.
- Select Ad Hoc and click Continue.
- Select an App ID to associate with the provisioning profile and click Continue.
- To be able to use one development provisioning profile across multiple apps, select a wildcard App ID, if available.
- Select one or more certificates for production to include in the provisioning profile and click Continue.
- Only certificates for production are listed.
- Select the devices that you want to include in the provisioning profile and click Continue.
- Provide a name for the profile and click Continue.
- Click Download to download the provisioning profile.
- Click Done.
In-House Distribution Provisioning Profile
- If you want to develop and distribute apps privately within your company or to a selected number of end users, you can use a provisioning profile for in-house distribution.
- When you build an app with a provisioning profile for in-house distribution, you can distribute the app outside of the App Store to the devices registered in your iOS Developer Enterprise Program.
- You can use an in-house provisioning profile to build and code sign private company apps.
Requirements:
- Verify that you have a certificate for production created for your Apple developer account.
- Verify that you have registered an App ID for your app.
Steps:
- In the iOS Dev Center, click Certificates, Identifiers & Profiles.
- In the drop-down menu in the top left corner, verify that iOS, tvOS, watchOS is selected.
- In the left-hand sidebar, select Provisioning Profiles → Distribution.
- Click +.
- Select In House and click Continue.
- Select an App ID to associate with the provisioning profile and click Continue.
- To be able to use one development provisioning profile across multiple apps, select a wildcard App ID, if available.
- Select one or more certificates for production to include in the provisioning profile and click Continue.
- Only certificates for production are listed.
- Enter a name for the profile and click Continue.
Click Download to download the provisioning profile.
Editing Provisioning Profiles
In the iOS Dev Center, click Certificates, Identifiers & Profiles.
- Under Provisioning Profiles Select the develoment/Distribution profile as per requirement.
- at the bottom of view click Edit.
- Make your changes to the provisioning profile, such as changing its name, adding certificates, or selecting a different set of devices.
- click on Generate button.
Deleting Provisioning Profiles:
- Under Provisioning Profiles Select the development / Distribution profile as per requirement.
- Select the profile you want to Delete.
- at the bottom of view click Delete.
- Give confirmation to delete, click Delete button.