Ho un programma che ho portato dall'ambiente Windows a macOS. Vorrei firmare il flat installer .pkg con lo stesso certificato che ho usato su Windows, che è valido e concesso da DigiCert.
Ho creato un portachiavi in Accesso Portachiavi, ho importato il certificato e l'ho salvato localmente come company.keychain
. Ho controllato le informazioni e ho visto che il Common Name del soggetto è, ad esempio, "Company & Co'. Quando provo a firmare con:
productsign --sign "Company & Co" --keychain company.keychain --timestamp=none unsigned.pkg signed.pkg
Si verifica il seguente errore:
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.
L'ho cercato e, anche se la pagina productsign man
non lo suggerisce, sembra che per firmare un pacchetto flat il certificato debba essere un certificato Apple Developer ID Installer: Company name
emesso da Apple stessa. Poiché ogni post sull'argomento su StackExchange è piuttosto vecchio, lo chiedo nuovamente: è così? In caso contrario, come faccio a capire se il certificato che ho a disposizione può firmare il pacchetto flat?
Note :
- Se apro il portachiavi, la voce "Company & Co" presenta il triangolo dell'estensione che mostra la chiave privata pertinente, quindi è in realtà un certificato "completo".
- Non ho bisogno di distribuire l'app su Apple App Store, il mio obiettivo è solo quello di impedire a Gatekeeper di lamentarsi del fatto che l'app non sia attendibile.
- Il pacchetto è stato creato con
packagebuild
eproductbuild
. - Se riesco a firmare il pacchetto, devo firmare anche l'applicazione e le librerie dinamiche spedite all'interno?
Grazie per l'attenzione.