J'ai un programme que j'ai porté de l'environnement Windows à MacOS. J'aimerais signer le fichier .pkg de l'installateur plat avec le même certificat que celui que j'ai utilisé sous Windows, qui est valide et délivré par DigiCert.
J'ai créé un trousseau dans Keychain Access, j'ai importé le certificat et je l'ai enregistré localement en tant que company.keychain
. J'ai regardé les informations et j'ai vu que le nom commun du sujet est, disons, "Company & Co". Lorsque j'essaie de signer avec :
productsign --sign "Company & Co" --keychain company.keychain --timestamp=none unsigned.pkg signed.pkg
L'erreur suivante se produit :
productsign: error: Could not find appropriate signing identity for "Company & Co" in keychain at company.keychain.
An installer signing identity (not an application signing identity) is required for signing flat-style products.
J'ai vérifié et, même si le productsign man
ne le suggère pas, il semble que pour signer un paquet plat, le certificat doive être un certificat de type Apple Developer ID Installer: Company name
émis par Apple elle-même. Étant donné que tous les messages sur ce sujet sur StackExchange sont assez anciens, je pose à nouveau la question : est-ce le cas ? Si ce n'est pas le cas, comment puis-je savoir si le certificat dont je dispose peut signer le paquet plat ?
Notes :
- Si j'ouvre le trousseau, l'entrée "Company & Co" comporte le triangle d'extension qui indique la clé privée correspondante, il s'agit donc bien d'un certificat "complet".
- Je n'ai pas besoin de distribuer l'application sur l'App Store d'Apple, mon but est juste d'empêcher Gatekeeper de se plaindre que l'application n'est pas fiable.
- Le paquet a été créé avec
packagebuild
yproductbuild
. - Si je parviens à signer le paquet, dois-je également signer l'application et les bibliothèques dynamiques qu'elle contient ?
Nous vous remercions de votre attention.