Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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

like image 318
miho Avatar asked Nov 02 '12 13:11

miho


People also ask

What is an Apple development certificate?

The Apple Worldwide Developer Relations Certificate Authority issues certificates used by developers for signing third-party apps and Safari Extensions, and for using Apple Wallet and Apple Push Notification services.

What is Mac installer distribution certificate?

Mac Installer Distribution Certificate This certificate is used to sign your application's Installer Package for submission to the Mac App Store.


1 Answers

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

like image 96
danielv Avatar answered Sep 22 '22 13:09

danielv