Search code examples
iosios-provisioningiphone-developer-program

What is the p12 certificate for iOS and should it be shared?


I have an iOS Developer Membership and have hired a developer to make an app for me. The developer has asked for a provisioning profile and a p12. I've created the provisioning profile but I'm unsure about the p12. I see how to make the p12 but I'm not sure if I should share this with the developer. Isn't the p12 the private key? Is it possible to do ad hoc distribution without sharing the p12 with the developer? What about when I distribute the app when it is completed, it seems like at some point I will have to share this with the developer?

I've looked here about p12 but it doesn't say if it's something you should share or not.


Solution

  • If you created a Company Developer Account, you shouldn't share your certificates. Instead you should invite your developer to your development team.

    Unfortunately, Apple requires you to actually be a Company in order to register a Company account, so it's very common to create a personal Apple Developer account instead.

    In this kind of accounts, you rights to develop only for you, so Apple needs to make sure that the one that is developing the apps is the one that paid for the account.

    If you want to develop with the same Developer Account in two Macs, you will need to share your p12 certificate and private key with your developer (that's the only way to do it). If you just want to allow development in your developer's Mac, he should create a certificate in his computer, send it to you so you can upload it to the Membership Center at developer.apple.com, create the certificate and send it to your developer back.

    More information about this is available at the official Apple documentation.

    EDIT 1: Invite People

    Here're the steps to invite a developer to your Company Apple Developer account:

    1. Login with your Agent account to member center
    2. Go to People tab:

    enter image description here

    1. Go to Invitations section:

    enter image description here

    1. Select Invite Person:

    enter image description here

    1. Complete your developer's data and assign him Admin role, so he can create certificates and provisioning profiles:

    enter image description here