Difference between “Mac Developer” and “3rd Party Mac Developer Application”

miho picture miho · Nov 2, 2012 · Viewed 13.4k times · Source

What is the difference between Mac Developer and 3rd Party Mac Developer Application profiles in Code Signing Identity? Which one is for Mac App Store distribution?

enter image description here

Answer

danielv picture danielv · Nov 28, 2012

I was scratching my head at this for some time too.

This is explained in "Tools Workflow Guide for Mac", found here:

https://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/OSXWorkflowGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40011201-CH1-SW1

(as usual with Apple, these topics are pretty cryptic and not always explained well).

Here are some relevant paragraphs:

The name of the certificate begins with the text “Mac Developer” for a Mac Development certificate, “3rd Party Mac Developer Application” for a Mac Submission certificate, and “3rd Party Mac Developer Installer” for a Mac Installer certificate

And

The development certificate should appear in the My Certificates category in Keychain Access. The name of the certificate begins with the text “Mac Developer:” followed by your name for a development certificate as shown in Figure 3-2

And

If you are a team agent or admin and you requested a distribution certificate, both your distribution and developer certificates appear in the My Certificates category in Keychain Access as shown in Figure 3-3. The distribution certificates begin with the text “3rd Party Mac Developer” followed by the type of certificate and your team name.

Finally,

Signing Using a Mac Submission Certificate

Before you create an archive, sign your project using the Mac Submission certificate.

...

Only a team agent or admin can obtain and use distribution certificates for this purpose. If you haven’t already done so, create your distribution certificates as described in “Creating Signing Certificates” now. Later when you submit to the Mac App Store, you are asked to select the Mac Installer certificate to sign the installer package.

Next, set the Code Signing Identity build setting to the Mac Submission certificate that begins with the text “3rd Party Mac Developer Application” as described in “Signing an App.” Run your app to verify that this is the build you want to release.

So basically, "Mac Developer:" certificate is a personal developer certificate for just signing the code. "3rd Party Mac Developer" certificate if you want to submit to the App Store and have the required role to do so.

Not to be confused, note that there is also "Developer ID Application" and "Developer ID Installer" certificates. These are used to sign the application for distribution outside of the App Store. Described in the same document under "Distributing Outside the Mac App Store"

UPDATE: The link to Apple's documentation originally mentioned is now obsolete. This is now better explained in the updated "App Distribution Guide" here - https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP40012582-CH31-SW41