Saltar al contenido

Firma de código en macOS

La firma de código es necesaria en macOS para permitir que tu aplicación aparezca en la Apple App Store y para evitar una advertencia de que tu aplicación está dañada y no se puede iniciar cuando se descarga desde el navegador.

La firma de código en macOS requiere una cuenta de Apple Developer que puede ser de pago (99$ al año) o del plan gratuito (solo para fines de pruebas y desarrollo). También necesitas un dispositivo Apple en el que realizar la firma de código. Esto es requerido por el proceso de firma y debido a los Términos y Condiciones de Apple.

Para configurar la firma de código en macOS debes crear un certificado de firma de código de Apple e instalarlo en el llavero de tu ordenador Mac o exportarlo para su uso en plataformas CI/CD.

Para crear un nuevo certificado de firma, debes generar un archivo de Solicitud de Firma de Certificado (CSR) desde tu ordenador Mac. Consulta crear una solicitud de firma de certificado para aprender cómo crear la CSR para la firma de código.

En tu cuenta de Apple Developer, navega a la página de Certificados, Identificadores y Perfiles y haz clic en el botón Crear un certificado para abrir la interfaz de creación de un nuevo certificado. Elige el tipo de certificado adecuado (Apple Distribution para enviar aplicaciones a la App Store, y Developer ID Application para distribuir aplicaciones fuera de la App Store). Sube tu CSR y el certificado será creado.

En la página de Certificados, Identificadores y Perfiles, haz clic en el certificado que deseas usar y haz clic en el botón Descargar. Esto guarda un archivo .cer que instala el certificado en el llavero una vez abierto.

Puedes configurar Tauri para que utilice tu certificado al construir aplicaciones para macOS en tu máquina local o al usar plataformas CI/CD.

Con el certificado instalado en el llavero de tu ordenador Mac, puedes configurar Tauri para que lo use para la firma de código.

El nombre de la entrada del llavero del certificado representa la identidad de firma (signing identity), que también se puede encontrar ejecutando:

Ventana de terminal
security find-identity -v -p codesigning

Esta identidad se puede proporcionar en la opción de configuración tauri.conf.json > bundle > macOS > signingIdentity o mediante la variable de entorno APPLE_SIGNING_IDENTITY.

Para usar el certificado en plataformas CI/CD, debes exportar el certificado a una cadena en base64 y configurar las variables de entorno APPLE_CERTIFICATE y APPLE_CERTIFICATE_PASSWORD:

  1. Abre la aplicación Acceso a Llaveros (Keychain Access), haz clic en la pestaña Mis certificados dentro del llavero inicio de sesión (login) y busca la entrada de tu certificado.
  2. Despliega la entrada, haz clic derecho en el elemento de la clave y selecciona Exportar "$KEYNAME".
  3. Selecciona la ruta para guardar el archivo .p12 del certificado y define una contraseña para el certificado exportado.
  4. Convierte el archivo .p12 a base64 ejecutando el siguiente script en la terminal:
Ventana de terminal
openssl base64 -A -in /path/to/certificate.p12 -out certificate-base64.txt
  1. Asigna el contenido del archivo certificate-base64.txt a la variable de entorno APPLE_CERTIFICATE.
  2. Asigna la contraseña del certificado a la variable de entorno APPLE_CERTIFICATE_PASSWORD.

Ejemplo de configuración de GitHub Actions

Secretos requeridos:

  • APPLE_ID - El correo electrónico de tu Apple ID
  • APPLE_PASSWORD - La contraseña de tu Apple ID
  • APPLE_CERTIFICATE - El archivo .p12 codificado en base64
  • APPLE_CERTIFICATE_PASSWORD - La contraseña de tu archivo .p12 exportado
  • KEYCHAIN_PASSWORD - La contraseña de tu llavero (keychain)

Consulta la guía oficial de GitHub para aprender cómo configurar secretos.

name: 'build'
on:
push:
branches:
- main
jobs:
build-macos:
needs: prepare
strategy:
matrix:
include:
- args: '--target aarch64-apple-darwin'
arch: 'silicon'
- args: '--target x86_64-apple-darwin'
arch: 'intel'
runs-on: macos-latest
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
steps:
- name: Import Apple Developer Certificate
env:
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
run: |
echo $APPLE_CERTIFICATE | base64 --decode > certificate.p12
security create-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
security set-keychain-settings -t 3600 -u build.keychain
security import certificate.p12 -k build.keychain -P "$APPLE_CERTIFICATE_PASSWORD" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" build.keychain
security find-identity -v -p codesigning build.keychain
- name: Verify Certificate
run: |
CERT_INFO=$(security find-identity -v -p codesigning build.keychain | grep "Apple Development")
CERT_ID=$(echo "$CERT_INFO" | awk -F'"' '{print $2}')
echo "CERT_ID=$CERT_ID" >> $GITHUB_ENV
echo "Certificate imported."
- uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ env.CERT_ID }}
with:
args: ${{ matrix.args }}

Para notarizar tu aplicación, debes proporcionar credenciales para que Tauri se autentique con Apple. Esto se puede hacer mediante la API de App Store Connect o mediante tu Apple ID.

  1. Abre la página de Usuarios y acceso de App Store Connect, selecciona la pestaña Integraciones, haz clic en el botón Añadir y selecciona un nombre y el acceso de Desarrollador.
  2. Establece la variable de entorno APPLE_API_ISSUER con el valor presentado encima de la tabla de claves.
  3. Establece la variable de entorno APPLE_API_KEY con el valor de la columna ID de clave de esa tabla.
  4. Descarga la clave privada, lo cual solo se puede hacer una vez y solo es visible tras recargar la página (el botón se muestra en la fila de la tabla para la clave recién creada).
  5. Establece la variable de entorno APPLE_API_KEY_PATH con la ruta del archivo de la clave privada descargada.

Después de configurar estas variables de entorno, vuelve a ejecutar tu comando de compilación o empaquetado de Tauri. Por ejemplo, para construir un DMG con pnpm, ejecuta pnpm tauri build --bundles dmg nuevamente. Si necesitas omitir la fijación (stapling) para un pase inicial de notarización, añade --skip-stapling directamente al comando de Tauri, como pnpm tauri build --bundles dmg --skip-stapling.

Si no deseas proporcionar una identidad autenticada por Apple, pero aún así deseas firmar tu aplicación, puedes configurar una firma ad-hoc.

Esto es útil en dispositivos ARM (Apple Silicon), donde se requiere la firma de código para todas las aplicaciones de Internet.

Para configurar una firma ad-hoc, proporciona la seudoidentidad - a Tauri, p. ej.

"signingIdentity": "-"

Para obtener detalles sobre la configuración de la identidad de firma de Tauri, consulta arriba.


© 2026 Colaboradores de Tauri. CC-BY / MIT