> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# Firma de código

Firma los instaladores para que macOS y Windows dejen de advertir a tus usuarios.

## Guía paso a paso para principiantes

Requisitos previos: Finalice la configuración local del escritorio, incluidos Rust y las herramientas de compilación del sistema operativo. Detenga el proceso de desarrollo Tauri antes de crear un instalador; deje el backend web ejecutándose. Ejecute cada verificación a continuación desde la raíz del repositorio y espere a que finalice antes de ejecutar la siguiente. Los comandos de paquetes filtrados funcionan en pagos solo de escritorio y en todas las plataformas.

Términos breves: un espacio de trabajo son los usuarios, datos y configuraciones separados de un equipo. El servidor es el backend confiable; Mantenga las claves del proveedor fuera del código del navegador y del teléfono. Una migración es un cambio de base de datos versionada que crea o actualiza tablas. Un modelo de IA es el motor que responde; el catálogo de modelos es la lista del servidor de ID de modelos disponibles y precios. Un proveedor es un servicio externo, como inteligencia artificial, correo electrónico o servicio de facturación. Un derecho es una concesión que permite que un espacio de trabajo utilice una función. Un webhook es un mensaje que un servicio envía al URL de otro servicio.

1. En una sucursal local, solicite a su agente de codificación que inspeccione `apps/desktop/src-tauri/tauri.conf.json` y configure el identificador del producto, el nombre de la aplicación, los íconos y el backend URL con los valores que posee. Utilice un backend público HTTPS URL para las versiones de lanzamiento.

2. Desde la raíz del repositorio, ejecute las comprobaciones del paquete de escritorio a continuación. Antes de verificar: liberación-config, configure SUPASTACK_APP_URL en esta terminal usando el comando del sistema operativo en la configuración local del escritorio; el backend público HTTPS debe estar ejecutándose y el identificador de la aplicación debe ser el suyo.

3. Una compilación exitosa no firma, certifica ante notario ni publica un instalador; Si falta Rust o una biblioteca del sistema, finalice la configuración local del escritorio.

Para obtener código personalizado, comience con el `prompts/README.md` proporcionado y copie el mensaje más cercano: `prompts/new-app-screen.md` para una pantalla de aplicación o `prompts/new-landing-page.md` para una página pública. Para trabajos de servidor, base de datos o proveedor, asigne a su agente de codificación la tarea de esta guía y pídale que lea `AGENTS.md`, `.ai/PROJECT_CONTEXT.md` y los espejos `.ai/` correspondientes; inspeccionar los archivos fuente exactos nombrados aquí; enumerar archivos y verificaciones antes de editarlos; preservar la propiedad del espacio de trabajo y los secretos exclusivos del servidor; y mostrarte la diferencia. Dígale el comportamiento que desea, los campos de entrada y salida, los roles permitidos, los éxitos y errores esperados y la cuenta, proveedor o dispositivo de prueba. Utilice valores de muestra; Nunca pegues un verdadero secreto.

[Antes de comenzar](https://supastack.dev/es/docs/web/before-you-start.md)

[Conceptos básicos de terminales](https://supastack.dev/es/docs/web/terminal-basics.md)

[Configuración local de escritorio](https://supastack.dev/es/docs/desktop/ship-in-5-minutes.md)

[Mensajes del agente y memoria del proyecto](https://supastack.dev/es/docs/web/agents.md)

```
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config
corepack pnpm --filter @supastack/desktop build
```


## Configura el shell del producto

Revisa `src-tauri/tauri.conf.json`, los metadatos de Cargo, las capacidades y los identificadores de plataforma. Sustituye los iconos de la aplicación mediante el proceso de recursos compartidos y configura la URL del backend prevista en compilación/runtime. La aplicación web alojada ya debe estar desplegada y ser accesible.


## Ejecuta la comprobación de compilación nativa

Estos comandos de paquete ejecutan pruebas y comprobaciones de tipos de Rust, validan la configuración de la versión y crean el instalador Tauri. La configuración de firma y distribución depende de la plataforma de destino y de su cuenta/certificados; No almacene material para firmar en la fuente.

```
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config
corepack pnpm --filter @supastack/desktop build
```


## Verifica el instalador en el sistema operativo de destino

Compruebe la instalación limpia, el inicio, el acceso al backend, la autenticación, los menús/bandeja, el registro del atajo, la segunda instancia, los enlaces profundos, el reintento sin conexión y la desinstalación. Verifique cada sistema operativo compatible por separado. Una compilación local no demuestra una distribución comercial firmada o notarizada; no se incluyen la configuración de firma, un canal de actualizaciones ni la automatización de versiones.

[Lista de verificación de aceptación nativa](https://supastack.dev/es/docs/desktop/run.md)

[Implementar el backend compartido](https://supastack.dev/es/docs/web/deployment.md)


## Configuración y ajustes

1. Los instaladores sin firma se instalan bien en tu propia máquina pero disparan avisos de Gatekeeper y SmartScreen para todos los demás — firma antes de publicar.

2. En macOS, inscríbete en el Apple Developer Program para obtener un certificado Developer ID; luego añade la configuración de firma y notarización en la sección bundle de src-tauri/tauri.conf.json y alimenta a Tauri con su entorno de firma documentado (APPLE_CERTIFICATE, APPLE_CERTIFICATE_PASSWORD, APPLE_SIGNING_IDENTITY, más las credenciales de notarización APPLE_API_KEY / APPLE_API_ISSUER) desde el almacén de secretos de tu CI.

3. En Windows, configura la firma Windows del bundle — una huella de certificado o un comando signtool personalizado — con el certificado también entregado a través del almacén de secretos de tu runner.

```
# tauri.conf.json ships unsigned today:
#   "bundle": { "active": true, "targets": "all", "icon": [...] }
# Add signing under bundle > macOS / bundle > windows
# and keep every certificate and password in your secret store,
# never in the repo.
# Auto-updater & release channels (stable / beta via {{channel}}):
# SUPASTACK_UPDATER_ENDPOINT=https://releases.example.com/{{channel}}/{{target}}/{{arch}}/{{current_version}}
# SUPASTACK_UPDATER_PUBKEY=…
# SUPASTACK_UPDATE_CHANNEL=stable
```


## Flujo de implementación

Aprovisiona los certificados a través de tu propio almacén de secretos e inyéctalos como variables de entorno en tiempo de build — un certificado commiteado al repo es un certificado que revocar.

Incrusta la SUPASTACK_APP_URL de producción en el mismo build de release para que los shells instalados apunten a la app desplegada.


## Verificación y solución de problemas

Verifica instalando el artefacto producido en una máquina que no sea la tuya: sin aviso de Gatekeeper ni SmartScreen, la app arranca y la sesión persiste. Un tauri build en verde sin la prueba de instalación firmada no es evidencia de release.

A continuación: el checklist de despliegue de la pestaña Web cubre las puertas de lanzamiento del lado del servidor.


Si quieres continuar la configuración, lee [Lista de comprobación de despliegue](https://supastack.dev/es/docs/web/deployment.md).


## Siguiente

[Lista de comprobación de despliegue](https://supastack.dev/es/docs/web/deployment.md)
