Sunday November 21, 2010

The dreaded "Code Sign error: The identity 'iPhone Distribution' doesn't match any identity in any profile."

by Jay F. Davis, www.amazsoft.com

I've just finished my third iPhone App, and I got caught in the end with the dreaded "Code Sign error: The identity 'iPhone Distribution' doesn't match any identity in any profile." The fix is actually quite simple, but I thought I'd share my experience so that others might benefit. (And so I don't forget next time around!)

When I finally finished the app, including a painstaking process of testing and even getting the app "pre-approved" by our content provider, I then needed to compile the app for distribution by Apple.

What I discovered is that I had a basic misunderstanding of the point of code-signing for distribution. It actually has nothing to do with Apple's distribution of the App. All code-signing does is assure that the person that creates the signing certificate is the same person who submits the app. It's a security measure for uploading the app to Apple.

After the app is uploaded, the certificate can expire and it doesn't matter because the app has already been uploaded to Apple.

So finally, after reading a dozen sites where the problem was discussed, I realized that I did need a distribution "mobileprovision." For the case of distribution, the "mobileprovision" is a permission to compile and upload. Nothing else.

I had assumed that the distribution certificate and mobileprovision didn't matter, because my two distribution provisions were expired. And, if it mattered, then my apps would not longer be on sale in the iTunes Store!

Development is another matter: The mobileprovision/certificate combo does expires. In fact, iPhone development builds are only good for about 90 days because of this expiration (or less, if I one doesn't update the development certificate).

Anyway, kind of confusing since the certificate/mobileprovision combination are essentially used in one way during development and then only during the upload process before distribution.

In this case I just needed to create a new "mobileprovsion" for distribution. That's it.

[Go to the Provisioning tab on the iOS Provisioning Portal and create a new distribution provision!]

 

Above article Last updated: 21 November 2010 07:37:15 PM

Flickr Photo Demo: Jay's Photos

www.flickr.com
jayduck_99's items Go to Jay's photostream

 

We use MxGuardDog spam filtering.