Tengo un programa que porté del entorno de Windows a macOS. Me gustaría firmar el instalador plano .pkg con el mismo certificado que usé en Windows, que es válido y otorgado por DigiCert.
Creé un llavero en Keychain Access, importé el certificado y lo guardé localmente como company.keychain
. Busqué en las informaciones y vi que el Nombre común del sujeto es, por ejemplo, 'Compañía & Co'. Cuando intento firmar con:
productsign --sign "Company & Co" --keychain company.keychain --timestamp=none unsigned.pkg signed.pkg
Se produce el siguiente error:
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.
Lo busqué y, incluso si la página productsign man
no lo sugiere, parece que para firmar un paquete plano, el certificado debería ser un certificado Apple Developer ID Installer: Company name
emitido por Apple. Como todas las publicaciones sobre el tema en StackExchange son bastante antiguas, vuelvo a preguntar: ¿es así? Si no, ¿cómo entiendo si el certificado que tengo disponible puede firmar el paquete plano?
Notas :
- Si abro el llavero, la entrada "Company & Co" tiene el triángulo de extensión que muestra la clave privada relevante, por lo que en realidad es un certificado "completo".
- No necesito distribuir la aplicación en la App Store de Apple, mi objetivo es evitar que Gatekeeper se queje de que no se confía en la aplicación.
- El paquete se creó con
packagebuild
yproductbuild
. - Si logro firmar el paquete, ¿también necesito firmar la aplicación y las bibliotecas dinámicas que se incluyen?
Gracias por su atención.