views:

29

answers:

1

Short version:

Is it necessary or even possible for me to generate a new distribution certificate based on my existing private key, or is there no harm, both for new apps and updates to existing apps on the app store, to generate a new certificate with a new private key?

Long version:

It seems to me that there is conflicting/misleading information in the iPhone Developer Program User Guide regarding private keys and distribution certificate expiration.

On the one hand, it says that you should guard your private key with your life, and keep a copy of it so that you can use it on a new machine if you change developer machines. My understanding was that somehow you must hold onto your one true private key (i.e., the first one you generate for your company when requesting your first certificate), and use it forever (at least, use it forever once you've deployed an app with it to the App Store).

On the other hand, it tells you that distribution certificates expire after one year and you can simply request a new distribution certificate when you need one. What would make sense to me would be if they followed that with a paragraph that started "Because it is critical for you to use your original private key when requesting your new certificate, here is how you request a certificate that is created from a pre-existing private key..." But there is no such paragraph and after searching I haven't heard of a way to do that.

There is this closely related post on stackoverflow: http://stackoverflow.com/questions/1410156/lost-private-key-for-iphone-distribution-certificate-what-could-be-solutions

The answers to that question seem to indicate that when a distribution certificate is lost or expired, you can revoke it and create a new one and there is no affect on your apps currently on the app store, and you can continue to publish new apps with your new certificate without Apple saying "Hey, you aren't the same company as before."

One key question left unanswered by that post is whether it's possible to update existing apps on the app store using a different cert/key than the one the apps were previously published under. But I have heard elsewhere that that's possible also.

So it boils down to: Is it misleading for Apple to make it sound like your private key is really the thing that identifies an app as being from your company? Is it really just your app id plus your credentials for logging in to the development portal and itunesconnect that identify your company and your apps?

+1  A: 

You can generate a new private key, and use it with no interruptions to your applications. I know this from first-hand-experience - as I lost my key and had to invalidate it, and regenerate a new one - after which I needed to sign an update to two of my existing applications (signed with the old key) - and submit the for updates to the AppStore.

There were not disruptions - either to existing apps after the key was revoked - or to the new updates, after people updated them. No user-data in the application was lost during the application update either. So in-short, everything was completely seamless.

There was one topic being discussed whether push notifications would continue to work properly (if you app uses them). I can't speak for that, though.

Brad
Thanks. I guess that means the stuff about the private key being so key is just misleading. Maybe it was more key in the past and they changed how things worked but didn't fix the documentation.
M Katz