Para firmar paquetes de macOS, necesitarás un certificado adecuado, como un certificado TLS/SSL con uso de firma, que debe poder verificarse en el cliente. Normalmente, para este fin se utiliza un Developer ID Installer, obtenido de una cuenta de desarrollador de Apple.
No obstante, también se aceptan certificados de terceros que cumplan estos criterios. Si no tienes un certificado y quieres utilizar una cuenta de desarrollador de Apple, puedes iniciar el proceso de registro en el sitio web de Apple.
Si utilizas una cuenta de desarrollador de Apple, los certificados pueden generarse vinculando tu cuenta de desarrollador a Xcode y exportando el archivo del certificado desde Xcode. También puedes acceder a tu cuenta de desarrollador de Apple en línea y descargar el certificado a través de un navegador web.
Al crear el certificado, asegúrate de que el tipo de certificado está designado como certificado de Developer ID Installer y confirma que está guardado en el llavero de macOS.
Una vez obtenido el certificado, existen varios métodos para firmar el PKG de macOS.
Firma de PKGs con Terminal y Línea de Comandos #
En este ejemplo, tendrás que utilizar el comando productsign
.
En primer lugar, abre Acceso a Llaveros en macOS y busca el certificado. Si estás utilizando un certificado de Apple, debe empezar por Developer ID Installer: … seguido del nombre de tu cuenta de desarrollador de Apple, y terminar con un número de serie entre paréntesis.
A continuación, abre el Terminal. El comando para firmar el paquete debería ser algo parecido a esto:
productsign --sign "Developer ID Installer: Your Developer Name (1A2B3C4D5E)" ~/Desktop/example.pkg ~/Desktop/signed-example.pkg
El texto entre comillas después de --sign
debe ser el nombre de tu certificado. El primer argumento (~/Desktop/example.pkg
) indica la ubicación actual del paquete sin firmar en tu ordenador, mientras que el segundo argumento (~/Desktop/signed-example.pkg
) es dónde quieres guardar tu paquete firmado.
Una vez hecho esto, ejecuta el comando. Si funciona, deberías ver algo similar a lo siguiente impreso en Terminal:
productsign: using timestamp authority for signature
productsign: signing product with identity "Developer ID Installer: Your Developer Name (1A2B3C4D5E)" from keychain /Users/sdeveloper/Library/Keychains/login.keychain-db
productsign: adding certificate "Developer ID Certification Authority"
productsign: adding certificate "Apple Root CA"
productsign: Wrote signed product archive to /Users/sdeveloper/Downloads/munkitools_signed-3.2.0.3476.pkg
Comprueba que el paquete firmado se encuentra en el destino especificado.
Firma con Xcode #
Supongamos que estás creando tu PKG de macOS en Xcode y tu cuenta de desarrollador de Apple está vinculada. En ese caso, Xcode puede solicitar automáticamente un certificado a tu cuenta de desarrollador e incluirlo en el certificado de firma del paquete durante las fases de compilación y archivo. Recomendamos consultar la documentación de Apple para obtener instrucciones más detalladas.
Asegúrate de elegir Developer ID Installer en la lista desplegable para la configuración del Certificado de firma cuando utilices este método. Esta opción se encuentra en la sección Firma de la pestaña Configuración general.