Skip to main content

Certificates

Manage signing certificates
Create, list, and manage code signing certificates for app development and distribution.

Overview

Certificates are used to sign your apps and establish your identity as a developer. The certificates command provides full lifecycle management of signing certificates in App Store Connect.

List Certificates

List all certificates or filter by type:

Pagination Options

  • --limit - Results per page (1-200)
  • --next - Fetch next page using a links.next URL
  • --paginate - Automatically fetch all pages

Get Certificate Details

Retrieve a specific certificate by ID:

Certificate Types

iOS Certificate Types

Development:
  • Used for: Running apps on devices during development
  • Profile types: IOS_APP_DEVELOPMENT
  • Limit: Multiple per account
Distribution:
  • Used for: App Store, Ad Hoc, and Enterprise distribution
  • Profile types: IOS_APP_STORE, IOS_APP_ADHOC, IOS_APP_INHOUSE
  • Limit: 3 active per account

tvOS Certificate Types

  • TVOS_DEVELOPMENT - tvOS development
  • TVOS_DISTRIBUTION - tvOS distribution

macOS Certificate Types

Mac App Development:
  • Used for: macOS development
Mac App Distribution:
  • Used for: Mac App Store distribution
Developer ID Application:
  • Used for: Apps distributed outside the Mac App Store
  • Enables notarization
Developer ID Installer:
  • Used for: Signing installer packages (.pkg) for distribution outside Mac App Store

Specialized Certificate Types

  • DEVELOPER_ID_KEXT - Kernel extensions (deprecated on modern macOS)
  • PASS_TYPE_ID - Wallet passes and Apple Pay
  • PASS_TYPE_ID_WITH_NFC - Wallet passes with NFC
  • MAC_INSTALLER_DISTRIBUTION - Mac App Store installer packages

Create Certificate

Create a new signing certificate:

Generate CSR (Certificate Signing Request)

Before creating a certificate, generate a CSR:
The CSR contains your public key. Keep the private key secure - you’ll need it to sign apps.

CSR Requirements

  • Key size: 2048-bit RSA minimum
  • Format: PEM-encoded PKCS#10
  • Common Name: Any descriptive name
  • The CLI accepts CSR files in PEM format or base64-encoded

Update Certificate

Enable or disable a certificate:
Disabled certificates remain in your account but cannot be used for new profile creation.

Revoke Certificate

Permanently revoke a certificate:
Warning: This action cannot be undone. Revoking a certificate:
  • Invalidates all provisioning profiles using this certificate
  • Cannot be re-enabled
  • Counts against your certificate limit until it expires
When to revoke:
  • Private key is compromised
  • Certificate is no longer needed
  • Replacing with a new certificate

Certificate Relationships

View related resources for pass type certificates:
This shows the pass type ID associated with Wallet pass certificates.

Complete Example Workflows

Create iOS Distribution Certificate

Rotate Distribution Certificate

Development Certificate Setup

Mac Developer ID Certificate

Certificate Export and Backup

Export from Keychain

Import on Another Machine

Certificate Limits

Apple imposes limits on active certificates: Revoked and expired certificates count against limits until they expire (1 year from creation).

Troubleshooting

Certificate Limit Reached

Solution: Revoke unused certificates:

Invalid CSR Format

Solution: Ensure CSR is properly formatted:

Private Key Not Found

This means the certificate was created with a CSR from another machine. Solution:
  1. Export the certificate and private key from the original machine as .p12
  2. Import the .p12 on your current machine
  3. Or create a new certificate with a CSR generated on your current machine

Certificate Shows as Invalid

Check certificate status:
Look for certificateType, expirationDate, and related attributes. Common issues:
  • Certificate expired (valid for 1 year)
  • Certificate was revoked
  • Private key missing from keychain
  • Signing - High-level signing workflow
  • Profiles - Provisioning profiles
  • Devices - Register development devices