Para firmar paquetes macOS, necesitarás un certificado apropiado, como un certificado TLS/SSL con uso de firma, que debe ser verificable en el cliente. Típicamente, se usa un certificado Developer ID Installer para este propósito, obtenido desde una cuenta de desarrollador de Apple.
Sin embargo, los certificados de terceros que cumplen estos criterios también son aceptables. Si no tienes un certificado y tienes intención de usar una cuenta de desarrollador de Apple, puedes comenzar el proceso de registro en el sitio web de Apple.
Si usas una cuenta de desarrollador de Apple, los certificados pueden generarse vinculando tu cuenta de desarrollador a Xcode y exportando el archivo de certificado desde Xcode. Alternativamente, puedes iniciar sesión en 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 se designe como certificado Developer ID Installer y confirma que se guarda en tu Llavero de macOS.
Una vez que obtienes tu certificado, hay varios métodos disponibles para firmar el PKG de macOS.
Firma de PKGs con Terminal y línea de comandos
En este ejemplo, deberás usar el comando productsign.
Primero, abre el Acceso a Llaveros en macOS y encuentra el certificado. Si usas un certificado de Apple, debería comenzar con Developer ID Installer: … seguido de tu nombre de 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 así:
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 común 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 donde quieres guardar tu paquete firmado.
Una vez hecho, ejecuta el comando. Si funciona, deberías ver algo similar a lo siguiente impreso en el 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
Verifica que el paquete firmado se encuentra en el destino que especificaste.
Firma usando Xcode
Supón que estás compilando 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 desde 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 el ajuste de Certificado de firma al usar este enfoque. Esta opción se puede encontrar en la sección Firma de la pestaña de Ajustes generales.