Skip to content

Support for "Apple Development" and "Apple Distribution" certificates#5238

Open
yannickpulver wants to merge 7 commits intoJetBrains:masterfrom
yannickpulver:master
Open

Support for "Apple Development" and "Apple Distribution" certificates#5238
yannickpulver wants to merge 7 commits intoJetBrains:masterfrom
yannickpulver:master

Conversation

@yannickpulver
Copy link
Copy Markdown

@yannickpulver yannickpulver commented Feb 15, 2025

Fixes CMP-4272 macOS signing failing with modern Apple certificates and bare signing identities.

What changed

  • Adds support for modern Apple certificate names:
    • Apple Development
    • Mac Development
    • Apple Distribution
    • Mac App Distribution
  • Keeps compatibility with legacy certificate names still used by jpackage and existing keychains:
    • 3rd Party Mac Developer Application
    • 3rd Party Mac Developer Installer
    • Mac Developer
  • Resolves bare signing identities against actual keychain certificates instead of assuming only Developer ID Application
  • Fails with a clear error when multiple matching certificates are found
  • Uses productsign for PKG signing when jpackage cannot sign newer distribution certificate types
  • Fails early for invalid PKG signing combinations such as development certificates

Testing

  • Added unit tests for certificate resolution and PKG signing compatibility
  • Verified createDistributable with modern certificate resolution
  • Verified packagePkg end-to-end with:
    • Apple Distribution
    • matching installer certificate (3rd Party Mac Developer Installer)
  • Verified against a real Compose app in Gridline:
    • draft verification PR: yannickpulver/gridline#3
    • :composeApp:packageReleasePkg -PappStore=true succeeded and produced a signed .pkg
    • :composeApp:packageReleaseDmg succeeded and produced a .dmg containing a signed .app
  • Public sample project:

Release Notes

Fixes - Desktop

  • Improves macOS certificate resolution and PKG signing for modern Apple signing certificates

@yannickpulver yannickpulver changed the title Updates fullDeveloperID Support for "Apple Development" and "Apple Distribution" certificates Feb 16, 2025
@kropp
Copy link
Copy Markdown
Member

kropp commented Mar 27, 2026

Hi @yannickpulver,
do you plan to continue working on this PR?

@yannickpulver
Copy link
Copy Markdown
Author

Hi @kropp I tried last year but failed to validate it. I could try to give it another go, but if there's somebody internally working on that I'm happy to close it.

yannickpulver and others added 6 commits March 27, 2026 13:59
…nd Mac Development certificates for macOS signing

jpackage only recognizes "Developer ID Application" and "3rd Party Mac Developer Application"
certificate prefixes — it prepends these to the identity, breaking newer Apple certificate types.
Skip jpackage signing for unsupported cert types and let the existing MacSigner handle it.
Also fixes passing raw identity instead of fullDeveloperID to jpackage.

Fixes CMP-4272, relates to CMP-7651
jpackage only signs PKGs with "Developer ID Installer" and "3rd Party Mac
Developer Installer" prefixes. For newer certificate types (Apple Distribution,
Mac App Distribution), sign the PKG post-creation using productsign.

Tries both "3rd Party Mac Developer Installer" and "Mac Installer Distribution"
as candidates since Apple still issues certs with the legacy name despite
documenting the new one.
@yannickpulver yannickpulver marked this pull request as ready for review March 30, 2026 21:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants