4 votes

Signé le pkg en utilisant productbuild --distribute mais codesign dit "l'objet du code n'est pas du tout signé".

Je signe mon paquet lors de la distribution en utilisant

SIGN_IDENTITY_INSTALLER="Developer ID Installer: Pxxxxxxx, LLC (AXXXXXXXXX)"

productbuild --distribution final-distribution.xml --package-path /tmp/installer-temp/package.pkg --resources resources --sign "$SIGN_IDENTITY_INSTALLER" "Package.pkg"

Et cela donne ce que c'est supposé être

productbuild: Signing product with identity "Developer ID Installer: Pxxxxxxx, LLC (AXXXXXXXXX)" from keychain /Users/michael/Library/Keychains/login.keychain
productbuild: Adding certificate "Developer ID Certification Authority"
productbuild: Adding certificate "Apple Root CA"
productbuild: Wrote product to Product.pkg

Mais quand je vais vérifier la signature, il n'y a rien.

codesign -dv --verbose=4 Product.pkg 
Product.pkg: code object is not signed at all <----WHAT?

Suis-je censé signer avec l'application Developer ID et non avec le programme d'installation Developer ID ?

Tous les certificats existent dans le trousseau et fonctionnent parfaitement.

Edit 1 Voir les certificats dans le portail des développeurs d'Apple. enter image description here

4voto

Graham Miln Points 39606

Utilice spctl pas codesign

El codesign ne fonctionne pas avec les fichiers de paquets, .pkg .

Utilisez le spctl à la place :

/usr/sbin/spctl --assess --ignore-cache --verbose --type install <pkg-path>

Alternativement, Installer.app

Vous pouvez également vérifier le certificat du paquet en utilisant Installer.app :

  1. Ouvrez le paquet dans l'Installateur.app de MacOS ;
  2. Cliquez sur le cadenas en haut à droite de la fenêtre d'installation.

Installer certificate in macOS

1voto

Udhy Points 5964

Pour signer les paquets MacOS, vous devez avoir accès à un compte Apple Developer. Les certificats de signature peuvent être générés via le compte Apple Developer.

Deux conditions de base doivent être remplies pour déployer les PKG de MacOS :

  1. Le fichier .pkg est construit comme une archive de produit.
  2. Pour distribuer une application d'entreprise, le fichier .pkg doit être signé avec un identifiant de développeur obtenu à partir d'un compte Apple Developer Enterprise. Pour toutes les autres applications à distribuer via le Mac App Store, le fichier .pkg est signé à l'aide du certificat "Developer ID Installer", obtenu à partir d'un compte Apple Developer.

J'utilise pkgbuild et productbuild pour cela et ce qui suit est mon script :

Étapes à suivre pour créer et signer un fichier PKG MacOS

  • Construisez le fichier .pkg à l'aide de la commande pkgbuild.

    sudo pkgbuild --component /path_to_installed_app/macapp.app --install-location /Applications --sign "Developer ID Installer: *******" /path_to_saved_package/packagename.pkg

Ici, le texte cité fait référence au nom de votre certificat. Les deux arguments spécifient l'emplacement du fichier .app déjà installé (/chemin_vers_app_installée/macapp.app) et l'emplacement du fichier .pkg nouvellement généré (/chemin_vers_paquet_sauvé/nom_du_paquet.pkg), respectivement.

  • Signez le fichier .pkg à l'aide de la commande productbuild.

    sudo productbuild --package /path_to_saved_package/packagename.pkg --content /path_to_app/ --sign "Developer ID Installer: *******" /path_to_signed_pkg/signed.pkg

Ici, le texte cité fait référence au nom du certificat. Les deux arguments spécifient l'emplacement du fichier .pkg nouvellement généré (/chemin_vers_saved_package/packagename.pkg) et l'emplacement du fichier .pkg signé (/chemin_vers_signed_pkg/signed.pkg), respectivement.

Étapes à suivre pour signer les fichiers PKG de MacOS

  • Ouvrez Keychain Access dans le Mac et localisez le certificat. Le nom du certificat doit être au format : Developer ID Installer : Nom du compte Apple (numéro de série).

  • Ouvrir le terminal. La commande pour signer le paquet devrait ressembler à ceci :

    productsign -sign “Developer ID Installer: Your Apple Account Name (**********)” ~/Desktop/example.pkg ~/Desktop/signed-example.pkg

Ici, le texte entre guillemets qui suit la balise -sign fait référence au nom de votre certificat. Les deux arguments, après le nom du certificat, font référence à l'emplacement actuel du paquetage non signé (/Desktop/example.pkg) et à l'emplacement du paquetage signé (/Desktop/signed-example.pkg), respectivement.

Le certificat signé est stocké dans le chemin de destination spécifié dans la commande.

J'espère que cela clarifiera vos questions ouvertes et vous guidera vers une solution appropriée.

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