macOS Code Signing Certificate

For macOS software distributed outside the Mac App Store, the relevant signing identity is an Apple Developer ID certificate. Developer ID Application is used for applications and executable code, while Developer ID Installer is used for installer packages.

Current Apple Developer pricing
$99 / year
Apple Developer Program membership. Certificate issuance is part of the Apple developer ecosystem rather than a separate DigiCert or Sectigo style product purchase.
Application signingDeveloper ID Application
Installer signingDeveloper ID Installer
DistributionDeveloper ID + notarization
Primary toolscodesign, notarytool, stapler
Create Developer ID certificate

macOS Code Signing Certificate Pricing

Apple does not sell Developer ID Application and Developer ID Installer certificates as separate third party CA products. The main entry cost is Apple Developer Program membership, while signing infrastructure can add costs depending on how you build and distribute your software.

Cost itemCurrent costWhat it coversWhen you need it
Apple Developer Program$99/yearMembership access to Apple developer resources, certificates, identifiers, profiles and distribution capabilities.Required for the standard Developer ID distribution workflow.
Developer ID ApplicationIncluded with membershipCertificate used to sign Mac applications and executable code distributed outside the Mac App Store.When distributing signed Mac applications directly.
Developer ID InstallerIncluded with membershipCertificate used to sign Mac Installer Packages containing signed applications.When distributing signed .pkg installers.
Apple notarizationApple does not list a separate notarization feeApple's automated service checks submitted software and issues a notarization ticket when accepted.For applicable software distributed outside the Mac App Store.
Mac build infrastructureVariesMac hardware, hosted Mac runners or other build infrastructure.When signing is automated or builds are not performed on a developer Mac.
Cloud, remote or HSM signingProvider dependentKey protection and signing infrastructure operated outside the normal developer workstation.When an organization centralizes or hardens signing operations.

Pricing note: Apple currently lists the Apple Developer Program at $99 USD annually. Regional pricing, taxes and eligibility can affect the amount charged. Apple lists Developer ID Application and Developer ID Installer as certificate types available through the developer account rather than separate certificate purchases.

What Is a macOS Code Signing Certificate?

A macOS code signing certificate is part of Apple's signing identity system used to establish who signed software and whether signed code has been changed. For software distributed outside the Mac App Store, Apple uses Developer ID certificates rather than the generic public CA certificates commonly associated with Windows Authenticode.

A Developer ID signing identity combines the certificate with its corresponding private key. The private key performs the signing operation, while the certificate identifies the developer identity associated with the signature. Apple documents Developer ID certificates specifically for Mac software distributed outside the Mac App Store.

This distinction matters when a buyer searches for a macOS code signing certificate. A DigiCert, Sectigo, SSL.com, or other generic CA code signing product should not be presented as an equivalent replacement for a Developer ID Application certificate.

Developer ID Application vs Developer ID Installer

Apple provides two Developer ID certificate types for different signing targets. Choosing the correct one is part of a reliable macOS release process.

Signing identityUsed forTypical artifact
Developer ID ApplicationSigning applications and executable code.app, executable code, nested components
Developer ID InstallerSigning Mac Installer Packages.pkg
Mac App Store workflowApple's App Store distribution and signing workflowApp Store submission artifacts

Do not substitute the two Developer ID certificates. Developer ID Application identifies and signs the application code. Developer ID Installer signs an installer package containing the signed application.

Does Apple Issue a macOS Code Signing Certificate?

Yes. Apple issues Developer ID certificates through the Apple Developer account system. Apple currently allows an Account Holder to create up to five Developer ID Application certificates and up to five Developer ID Installer certificates, with cloud-managed Developer ID certificates also available for eligible roles.

Apple Developer Account → Developer ID certificate → private key → signing identity → signed software

The certificate is only one part of the identity. The corresponding private key is what allows a build system or developer machine to create a signature. Apple provides the certificate through its developer account infrastructure and the certificate is installed into the Mac Keychain for signing.

macOS Code Signing vs Windows Code Signing

The same search phrase can describe very different ecosystems. macOS and Windows use different certificate authorities, signing tools, trust models, and distribution controls.

AreamacOSWindows
Primary signing ecosystemApple DeveloperPublic CAs + Authenticode
Application signingDeveloper ID ApplicationAuthenticode
Installer signingDeveloper ID Installer for .pkgAuthenticode for applicable executables/installers
Main signing toolcodesignSignTool
Distribution securityGatekeeper + notarizationSmartScreen and Windows trust mechanisms
Certificate sourceApple DeveloperPublic CA providers

What Can You Sign on macOS?

macOS code signing is applied to executable code and application components. A release can contain multiple nested signed objects, so the final application depends on the integrity of the signing structure.

Applications

The main .app bundle and its executable code.

Nested code

Frameworks, helper apps, dynamic libraries, plug-ins and other executable components.

Installer packages

A .pkg can be signed with Developer ID Installer.

Distribution artifacts

DMG files and other deliverables can participate in notarization workflows.

App extensions

Extensions and executable components must be signed consistently with the application architecture.

Frameworks and libraries

Embedded frameworks and libraries must be correctly signed before the final bundle is sealed.

DMG is different from the application inside it. A disk image is a distribution container. The application inside it still needs its own appropriate signing, and a disk image can also be submitted to Apple's notary service.

How macOS Code Signing Works

The practical release chain is more than placing a certificate on an application. The signing identity, code signature, entitlements, nested code, notarization and Gatekeeper all have separate roles.

1

Developer ID

Apple issued signing identity.

2

Code sign

codesign creates signatures.

3

Seal resources

Bundle resources are covered by the signature.

4

Verify

Check signature, identity and requirements.

5

Notarize

Submit software to Apple's notary service.

6

Distribute

Package and deliver the release.

7

Gatekeeper

macOS assesses the software when opened.

Certificate and private key

The certificate identifies the Developer ID identity. The corresponding private key is required to create signatures.

Entitlements and Hardened Runtime

Signing configuration also interacts with capabilities, entitlements and the Hardened Runtime requirements used for notarized software.

What Does a macOS Code Signature Prove?

A valid signature gives a specific set of assurances. It should not be treated as a general software safety certificate.

It can establish

  • The signing identity associated with the code
  • That signed code has not been modified since signing
  • The certificate chain associated with the signing identity

It does not prove

  • The software contains no vulnerabilities
  • The software is free of malicious behavior
  • The developer is trustworthy in every respect

What notarization adds

Apple's notary service scans submitted software for malicious content and code signing issues and provides a notarization ticket when the submission is accepted.

Developer ID and Gatekeeper

Developer ID signing and Gatekeeper are connected, but they are not the same mechanism. Developer ID provides the signing identity that Gatekeeper can evaluate when software is distributed outside the Mac App Store.

Apple describes Gatekeeper as the macOS security technology that helps protect users when they install software from outside the App Store. Gatekeeper checks whether software is from a known developer and whether it has been altered. Notarization adds Apple's assessment and a ticket that Gatekeeper can use.

Signed software

A valid Developer ID signature identifies the signer and protects code integrity.

Notarized software

Apple has processed the submitted software through its notary service and issued a ticket when accepted.

Gatekeeper assessment

At installation or first launch, macOS uses its security assessment to determine what information and controls apply.

Code Signing vs macOS Notarization

Code signing establishes the signer and protects code integrity. Notarization is a separate Apple service that checks submitted software and returns a ticket when the submission is accepted.

Code signingNotarization
Identifies the signerApple checks submitted software
Uses a signing identity and private keyUses Apple's notary service
Protects code integrityProvides Apple's notarization assessment and ticket
Occurs during the signing/build workflowOccurs after the software is prepared for submission
Does not replace notarizationDoes not replace code signing

Apple's current documentation says software distributed outside the Mac App Store with Developer ID should be notarized. For new Developer ID signed software and current distribution workflows, Hardened Runtime and a secure timestamp are among the notarization preparation requirements.

Developer ID Application Certificate Requirements

The practical setup starts with an Apple Developer account and the correct certificate type. The private key should be created and controlled by the party responsible for signing.

Apple Developer Program membership
Account permissions to create Developer ID certificates
Developer ID Application certificate
Corresponding private key
Mac development or signing environment
Xcode or Apple command line tools where applicable

Where Is the Private Key Stored?

The certificate can be shared as part of the public identity chain, but the private key is the sensitive signing credential. Its storage model should match the release architecture.

Developer Mac

Stored in Keychain Access and used by local signing tools.

Build server

A controlled signing environment can import the identity for automated builds.

CI/CD keychain

A temporary keychain can reduce the exposure window for automated signing credentials.

Remote infrastructure

Cloud, remote or HSM backed architectures can centralize signing without distributing private keys across every build machine.

How to Create a Developer ID Certificate

Apple's current certificate workflow uses Certificates, Identifiers & Profiles and a certificate signing request. The Account Holder can create Developer ID certificates.

1

Open Apple Developer

Sign in with the appropriate account.

2

Create request

Generate a certificate signing request and private key.

3

Request certificate

Select Developer ID Application or Installer.

4

Install and test

Download the certificate, install it in Keychain and verify the identity.

Apple's documented workflow uses a .certSigningRequest file for the certificate request and provides a .cer certificate file for download.

How to Find Your macOS Signing Identity

Before automating a release, confirm which signing identities are available on the Mac and identify the exact identity that should be used by the build system.

Terminal
security find-identity -v -p codesigning

What to inspect

Look for the expected Developer ID identity, team association and available certificate entry.

Why this matters

A build can fail when the certificate exists but the private key is missing, the wrong identity is selected, or the temporary keychain is not unlocked.

How to Sign a macOS Application

The standard command line workflow uses codesign. Complex applications should be signed from the inside out so nested executable code is handled before the final application bundle.

Basic signing example
codesign --force --options runtime --timestamp --sign "Developer ID Application: Your Company" MyApp.app

Nested frameworks

Sign embedded frameworks and libraries with the intended identity before signing the outer application.

Entitlements

Pass the correct entitlement file when the application requires capabilities that must be declared during signing.

Verification

Run verification commands after signing rather than assuming a successful command means the complete bundle is ready for distribution.

How to Verify a macOS Code Signature

Verification should confirm both that the signature is structurally valid and that the expected identity and configuration are present.

Verify signature
codesign --verify --deep --strict --verbose=2 MyApp.app
Inspect signature details
codesign -dv --verbose=4 MyApp.app

Identifier

Confirm the bundle identifier matches the intended application.

Team identifier

Check the developer team association shown by the signature details.

Authority

Inspect the certificate authorities and Developer ID identity.

Entitlements

Review the entitlements actually embedded in the signed application.

macOS Code Signing and Entitlements

Entitlements describe capabilities and security permissions associated with signed Apple software. They are part of the signing configuration, not a replacement for signing itself.

Hardened Runtime

Enables runtime protections used by modern notarized macOS applications.

App Sandbox

Restricts access to system resources and user data for applications using sandboxing.

Keychain and other capabilities

Application features such as keychain access and push notifications can involve entitlement configuration.

An entitlement change can require the application to be signed again. A signature that was valid before the bundle or its signed configuration changes may no longer be valid after the modification.

Hardened Runtime and Code Signing

For software distributed outside the Mac App Store and submitted for notarization, Hardened Runtime is a central part of the current macOS security workflow.

Apple's notarization preparation documentation requires Hardened Runtime for relevant applications and command line targets. The capability interacts with entitlements, so developers need to test the application after enabling it and after adding exceptions required by legitimate functionality.

Build configuration

Enable Hardened Runtime in the target configuration used for the distributable build.

Testing

Test the actual release build because runtime restrictions can expose assumptions that were hidden during development.

Code Signing for DMG and PKG Distribution

A Mac application, installer package and disk image are different artifacts. Their signing and notarization considerations should therefore be handled separately.

Application

Sign the .app with Developer ID Application and ensure nested code is correctly signed.

Installer package

Sign the .pkg with Developer ID Installer when distributing a signed installer package.

DMG

Treat the disk image as a distribution container. The application inside still needs appropriate signing, and the disk image itself can participate in notarization.

macOS Code Signing for CI/CD

Automated signing is where certificate management becomes an engineering control rather than a developer workstation task. The release system should make the signing identity available only to the jobs that need it.

Build systems

GitHub Actions, GitLab CI, Jenkins and Azure DevOps can run macOS signing workflows on suitable Mac runners.

Keychain setup

Import the signing identity into a controlled keychain and unlock it only for the signing job.

Notarization automation

Use Apple's notarytool or the Notary API for scripted submission and status handling.

Do not place long lived private keys in plain CI variables. Use controlled secret storage, access restrictions, temporary keychains, protected build runners and a documented recovery process.

Cloud and Remote macOS Code Signing

Cloud and remote signing describe how the signing operation is hosted. They do not create a new Apple certificate type.

Local signing

Private key stays on a developer or build Mac.

Remote signing

A controlled service performs the signing operation away from the build workstation.

Cloud signing

Signing infrastructure is hosted as a managed service with access controls and centralized operations.

HSM based signing

Hardware backed key protection can reduce direct private key exposure in enterprise environments.

Developer ID is the Apple signing identity. Cloud, remote, HSM based and managed signing are infrastructure models for protecting and operating that identity.

macOS Code Signing Certificate Expiration

Certificate expiration affects future signing and, depending on the certificate type and software artifact, how macOS evaluates existing releases. Apple documents different behavior for applications and installer packages.

Apple states that applications signed with Developer ID can continue to run after the certificate expires when the certificate was valid when the application was compiled, subject to the other checks applied by macOS. Developer ID Installer packages have a stricter runtime requirement: an expired Developer ID Installer certificate requires the package to be re-signed with a valid certificate.

Renewal planning should therefore cover new releases, installer packages, provisioning where applicable, notarization credentials and the signing infrastructure rather than assuming one universal expiration rule.

What Happens If the Private Key Is Lost?

Losing the private key does not simply mean downloading the certificate again. The certificate and private key form the signing identity used to produce signatures.

Existing releases

Assess existing signed software separately from the ability to create new signatures.

Future releases

A replacement signing identity may be required for new builds if the original private key cannot be recovered.

Recovery

Maintain protected backups, controlled access, recovery documentation and a tested CI/CD replacement procedure.

What Happens If the Private Key Is Compromised?

A compromised signing key should be treated as a release security incident. The response must protect both the Apple account and the software distribution pipeline.

1

Stop signing

Disable affected release operations.

2

Investigate

Identify exposure and affected releases.

3

Revoke or replace

Work through the Apple certificate response process.

4

Secure

Rotate credentials and rebuild signing controls.

5

Respond

Assess releases and rebuild or resign where necessary.

Certificate revocation and software release response are separate considerations. The security team should also assess notarization tickets and unauthorized versions distributed with the exposed identity.

macOS Code Signing Errors

Common signing and notarization failures often indicate a mismatch between the application structure, signing identity, entitlements, keychain state or release configuration.

code object is not signed at all

Check whether the expected executable or nested component was actually signed.

a sealed resource is missing or invalid

Check whether files changed after signing or whether the application bundle contains unexpected modifications.

code signature invalid

Inspect the signature and nested code for invalid or inconsistent signing.

CSSMERR_TP_NOT_TRUSTED

Inspect the certificate chain, trust state and signing environment.

errSecInternalComponent

Check keychain access, private key availability and the signing environment.

Invalid entitlements

Compare the entitlements with the application's capabilities and distribution configuration.

Nested code not signed

Sign embedded frameworks, helpers and other executable components before signing the outer bundle.

Provisioning mismatch

Check the signing identity, team configuration and provisioning requirements for the target.

Notarization rejection

Read the Apple notary log and resolve the reported signing, runtime or packaging issue.

macOS Code Signing vs Notarization vs App Store Distribution

The distribution route determines which signing and security workflow applies. This is why a single generic certificate page cannot accurately describe every macOS distribution scenario.

Distribution methodSigning approachNotarization
Mac App StoreApp Store distribution workflowApple's platform workflow includes its own security checks
Direct downloadDeveloper IDUse the applicable notarization workflow
Internal enterprise distributionDepends on deployment modelDepends on how the software is distributed and secured
Developer testingDevelopment signingNot normally the same production distribution workflow

macOS Code Signing Certificate Cost

Apple uses a membership and certificate model rather than selling Developer ID certificates as individual third party CA products. The current Apple Developer Program fee is $99 per year in USD, with local currency pricing where available.

Apple Developer Program

$99/year current published US membership price.

Mac build infrastructure

Mac hardware, hosted runners or Xcode Cloud can add release costs.

Signing infrastructure

Remote, cloud or HSM based models may add service or infrastructure costs.

Operations

Security controls, monitoring, recovery and release engineering also affect total cost.

Additional costs can come from Mac build runners, CI/CD infrastructure, signing key protection, cloud or remote signing services and engineering time. Verify Apple's current membership price before publication because regional pricing and program terms can change.

macOS Code Signing for Software Companies

A production signing architecture should separate source control, build, signing, verification, notarization and distribution while limiting who can access the signing identity.

1

Source

Approved release code.

2

Build

Controlled Mac runner.

3

Sign

Developer ID identity.

4

Verify

Signature and entitlements.

5

Notarize

Apple notary service.

6

Package

DMG, ZIP or PKG.

7

Distribute

Controlled release.

For broader organizational controls, the existing Code Signing for Software Companies resource can sit alongside this macOS specific workflow.

macOS Code Signing Provider and Infrastructure Options

Do not compare DigiCert, Sectigo and other public CA providers as if they issue interchangeable Developer ID certificates. The correct comparison is between Apple's signing ecosystem and the infrastructure used to protect and operate the Apple signing identity.

Apple signing ecosystem

  • Developer ID Application
  • Developer ID Installer
  • Apple Developer account
  • Apple notarization service

Signing infrastructure

  • Cloud HSM
  • Remote signing
  • Enterprise key management
  • CI/CD signing infrastructure

Cloud Code Signing

Use the Cloud Code Signing resource for the infrastructure model.

Remote Code Signing

Use the Remote Code Signing resource when the signing operation is separated from the build workstation.

HSM Code Signing

Use the HSM Code Signing resource for hardware backed key protection concepts.

macOS Code Signing Checklist

Use this checklist before a production release distributed outside the Mac App Store.

Apple Developer account is active
Correct Developer ID certificate selected
Corresponding private key is available securely
Signing identity verified
Application and nested code signed
Entitlements configured
Hardened Runtime configured where required
Signature verified
Installer signed where applicable
Application notarized where required
Notarization ticket stapled where appropriate
Final artifact tested on a clean Mac
Signing credentials protected
Recovery process documented

macOS Code Signing Certificate FAQ

These questions target distinct commercial, technical and implementation searches around Apple's Developer ID model.

Is a macOS code signing certificate the same as a Windows code signing certificate?

No. macOS software distributed outside the Mac App Store uses Apple's Developer ID signing ecosystem, while Windows software commonly uses public CA certificates with Authenticode.

Does Apple issue Developer ID certificates?

Yes. Apple provides Developer ID Application and Developer ID Installer certificates through the Apple Developer account system.

What is a Developer ID Application certificate?

It is the Apple certificate type used to sign Mac applications and executable code for distribution outside the Mac App Store.

What is a Developer ID Installer certificate?

It is used to sign Mac Installer Packages such as .pkg files.

Do I need a certificate to sign a Mac application?

For Developer ID distribution outside the Mac App Store, you need an appropriate Developer ID signing identity and its corresponding private key.

Is notarization the same as code signing?

No. Code signing identifies the signer and protects code integrity. Notarization is Apple's separate service for checking submitted software.

Does code signing prevent Gatekeeper warnings?

A valid signature is part of the trust assessment, but signing and notarization are separate controls. Gatekeeper evaluates multiple signals when software is opened.

Can I use a code signing certificate from DigiCert or Sectigo to sign a macOS application?

A generic public CA code signing certificate should not be presented as an alternative to Apple's Developer ID Application certificate for normal Developer ID macOS distribution.

Can macOS code signing be automated in CI/CD?

Yes. Signing and notarization can be integrated into automated build pipelines using controlled Mac runners, keychain handling and Apple's command line tools or APIs.

Where should I store my macOS signing private key?

Store it in a controlled signing environment such as a protected Keychain, dedicated build environment or appropriate remote or hardware backed architecture. Avoid casual distribution of the private key.

Can I sign macOS applications from GitHub Actions?

Yes, when the workflow uses an appropriate macOS runner and securely handles the Developer ID signing identity and private key.

What happens when a Developer ID certificate expires?

Apple documents different behavior for applications and installer packages. An application signed while the Developer ID certificate was valid can continue to run after expiration, while an installer package signed with an expired Developer ID Installer certificate must be re-signed.

What happens if my macOS signing certificate is revoked?

Apple states that a revoked Developer ID application can no longer be installed or launched. The incident should also trigger an investigation of affected releases and signing credentials.

How do I verify a macOS application signature?

Use codesign verification commands and inspect the signature details, identifier, team identifier, authority and entitlements.

Related Resources

Connect the macOS page to the wider CodeSigningSolution resource architecture without treating every code signing technology as interchangeable.

Platform

This page covers the macOS Code Signing Certificate use case, while the macOS Code Signing Guide focuses on the wider platform workflow.

How To

For the practical release process, follow How to Sign macOS Applications and use the code signature verification steps to check the signed artifact.

Infrastructure

Teams protecting signing credentials across release environments can compare cloud code signing, remote code signing and HSM code signing.

Business

Signing requirements vary by release process, so review code signing for software companies or code signing for independent developers for different team contexts.

Concepts

Understand the trust model through how code signing works, the code signing certificate chain and code signing and timestamping.

Troubleshooting

When a release fails verification because of signing credentials, review what happens if a code signing private key is compromised and revisit the signature verification process before distributing a rebuilt artifact.

Build a secure macOS signing workflow

For macOS software distributed outside the Mac App Store, start with the Apple Developer ID model, then design the signing, verification, notarization and key protection workflow around the actual release artifacts.