How do I share certificates across multiple apps using automatic code signing?

Last updated: August 5, 2026

Context

When using automatic code signing with multiple iOS applications, you may want to share the same distribution certificate across all your apps to avoid hitting Apple's certificate limits. This is especially important when managing many applications, as Apple limits the number of distribution certificates you can have per developer account.

Answer

Yes, you can share a single distribution certificate across multiple bundle identifiers. A distribution certificate is team-level and not tied to specific bundle identifiers, so one certificate can sign multiple apps within the same Apple Developer Team.

To share certificates across multiple apps:

  1. Create a global private key: Go to Settings > Team > codemagic.yaml settings > Global variables and secrets and create your CERTIFICATE_PRIVATE_KEY there.

  2. Reference the global key: In each of your apps, reference this global CERTIFICATE_PRIVATE_KEY instead of creating separate keys.

  3. Use the same key for all apps: This ensures all apps can access the same certificate that was created with that private key.

Important: Each certificate is tied to the private key used to create the Certificate Signing Request (CSR). If different apps use different private keys, they cannot share certificates, and attempts to create new certificates may fail if you've reached Apple's certificate limit.

What gets shared vs. what's unique:

  • Certificate: One distribution certificate can be shared across many bundle identifiers

  • Provisioning profiles: These are bundle-ID specific and typically require one per app (and one per extension if your app has extensions)

If you're encountering certificate limit errors, you may need to delete unused certificates from your Apple Developer Portal to free up slots before creating new ones.

This approach is recommended for teams managing multiple applications as it reduces certificate management overhead and prevents hitting Apple's certificate limits.

For more information about how to retrieve CERTIFICATE_PRIVATE_KEY, check this article.