Search code examples
iphoneiosxcodeauthenticationxcode4

The relationship between Provisioning Profiles, Certificates, App IDs, and Keys


Right now I'm just trying to test my app on my phone and not deploy to the store.

How are all these things related? Since I'm not trying to upload to the store, can I ignore any of them?

I'm on the University Developer program. I was able to get a certificate and install it in Xcode, but builds still fail.

enter image description here

Is solving this problem just a matter of changing the application identifier? How do I know what to put in?

One thing I noticed is that in the Developer Portal I see only one App ID but it's for someone with a different name. So I guess I don't have an App ID. Do I need one if I'm just trying to test on my phone? If I need one, then how do I get it?

Help! It seems the more I research these things the more confused I get. If you can't solve my problem, can you at least tell me how these things are related to each other?


Solution

  • Provision Profiles are a very long, unique, string that allows the device to recognize certificates (very VERY helpful for development).

    You must provision your device with the specific bundle ID of your app (done through developer.apple.com), then install said profile in order to even think about building with a valid certificate. However, it is much easier to have Xcode generate a wildcard provisioning profile, which allows you to test ANY bundle ID (it shows up as *.mobileprovision).

    Certificates are the other side of the coin. A certificate for anything (website, application) indicates that this service can be trusted by the user, and more importantly, the OS. Certificates are issued by Apple California, are valid for a year, and may be revoked at any time for any reason. On a closed and secure platform like the iPhone, a certificate is a must for any application.