4 votes

Signer un paquet plat avec un certificat autre que celui d'Apple

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 :

  1. 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".
  2. 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.
  3. Le paquet a été créé avec packagebuild y productbuild .
  4. 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.

1voto

Jose Chavez Points 645

Oui, il en est ainsi. Le certificat doit être un certificat Developer ID Installer d'Apple. Vous ne pouvez pas utiliser le même certificat de signature de code que celui que vous utilisiez précédemment pour votre application Windows.

Vous pouvez lire les instructions sur la façon de signer correctement les paquets d'installation plats ici :

https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/DistributingApplicationsOutside/DistributingApplicationsOutside.html

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X