LaunchLint Academy

La respuesta breve
- Todo valor enviado al cliente móvil debe considerarse legible. `.env`, EAS Secrets u obfuscation no protegen un valor incrustado.
- Separa identificadores públicos de credenciales privadas, mueve privilegios al servidor y rota cada secreto expuesto.
- Esta checklist no se completa una sola vez. Ejecútala antes del primer upload, después de cambios relevantes en dependencias o configuración y justo antes de publicar. Desarrollo, producto y quien controla la consola deben revisar el mismo build. Las señales estáticas son reproducibles, pero no demuestran el runtime ni las respuestas del backend. Combínalas con pruebas del artefacto firmado, declaraciones oficiales y una decisión documentada.
1. Inventariar secretos
Lista keys, credenciales, tokens, firma e identificadores con responsable.
Trata inventariar secretos como una propiedad verificable del candidato exacto. Relaciona la decisión con su archivo, campo de la tienda o prueba reproducible. Registra por separado lo esperado y lo observado, asigna responsable y detén la publicación mientras quede una contradicción de seguridad o review.
Pruebas para aceptar la release
- Estado de producción de inventariar secretos identificado
- Archivo o campo responsable enlazado
- Prueba repetida en un dispositivo limpio
- Diferencias iOS y Android documentadas
- Cada duda tiene responsable y fecha
- La evidencia no contiene secretos ni datos personales
2. Revisar historial
Busca código, configuración, CI, ejemplos, assets, patches y Git.
Trata revisar historial como una propiedad verificable del candidato exacto. Relaciona la decisión con su archivo, campo de la tienda o prueba reproducible. Registra por separado lo esperado y lo observado, asigna responsable y detén la publicación mientras quede una contradicción de seguridad o review.
Pruebas para aceptar la release
- Estado de producción de revisar historial identificado
- Archivo o campo responsable enlazado
- Prueba repetida en un dispositivo limpio
- Diferencias iOS y Android documentadas
- Cada duda tiene responsable y fecha
- La evidencia no contiene secretos ni datos personales
3. Separar build y runtime
Un secret solo queda en servidor si nunca se escribe en el cliente.
Trata separar build y runtime como una propiedad verificable del candidato exacto. Relaciona la decisión con su archivo, campo de la tienda o prueba reproducible. Registra por separado lo esperado y lo observado, asigna responsable y detén la publicación mientras quede una contradicción de seguridad o review.
Pruebas para aceptar la release
- Estado de producción de separar build y runtime identificado
- Archivo o campo responsable enlazado
- Prueba repetida en un dispositivo limpio
- Diferencias iOS y Android documentadas
- Cada duda tiene responsable y fecha
- La evidencia no contiene secretos ni datos personales
4. Tratar variables públicas
`EXPO_PUBLIC_` y equivalentes son legibles en el bundle.
Trata tratar variables públicas como una propiedad verificable del candidato exacto. Relaciona la decisión con su archivo, campo de la tienda o prueba reproducible. Registra por separado lo esperado y lo observado, asigna responsable y detén la publicación mientras quede una contradicción de seguridad o review.
Pruebas para aceptar la release
- Estado de producción de tratar variables públicas identificado
- Archivo o campo responsable enlazado
- Prueba repetida en un dispositivo limpio
- Diferencias iOS y Android documentadas
- Cada duda tiene responsable y fecha
- La evidencia no contiene secretos ni datos personales
5. Mover privilegios
Keys privadas y acciones administrativas pasan por un backend autenticado.
Trata mover privilegios como una propiedad verificable del candidato exacto. Relaciona la decisión con su archivo, campo de la tienda o prueba reproducible. Registra por separado lo esperado y lo observado, asigna responsable y detén la publicación mientras quede una contradicción de seguridad o review.
Pruebas para aceptar la release
- Estado de producción de mover privilegios identificado
- Archivo o campo responsable enlazado
- Prueba repetida en un dispositivo limpio
- Diferencias iOS y Android documentadas
- Cada duda tiene responsable y fecha
- La evidencia no contiene secretos ni datos personales
6. Restringir keys públicas
Limita por identidad, dominio, API, cuota y entorno.
Trata restringir keys públicas como una propiedad verificable del candidato exacto. Relaciona la decisión con su archivo, campo de la tienda o prueba reproducible. Registra por separado lo esperado y lo observado, asigna responsable y detén la publicación mientras quede una contradicción de seguridad o review.
Pruebas para aceptar la release
- Estado de producción de restringir keys públicas identificado
- Archivo o campo responsable enlazado
- Prueba repetida en un dispositivo limpio
- Diferencias iOS y Android documentadas
- Cada duda tiene responsable y fecha
- La evidencia no contiene secretos ni datos personales
7. Rotar y analizar
Revoca primero, sustituye y revisa uso; ocultar el nombre no basta.
Trata rotar y analizar como una propiedad verificable del candidato exacto. Relaciona la decisión con su archivo, campo de la tienda o prueba reproducible. Registra por separado lo esperado y lo observado, asigna responsable y detén la publicación mientras quede una contradicción de seguridad o review.
Pruebas para aceptar la release
- Estado de producción de rotar y analizar identificado
- Archivo o campo responsable enlazado
- Prueba repetida en un dispositivo limpio
- Diferencias iOS y Android documentadas
- Cada duda tiene responsable y fecha
- La evidencia no contiene secretos ni datos personales
8. Automatizar el gate
Combina patrones, entropía, allowlist y revisión humana.
Trata automatizar el gate como una propiedad verificable del candidato exacto. Relaciona la decisión con su archivo, campo de la tienda o prueba reproducible. Registra por separado lo esperado y lo observado, asigna responsable y detén la publicación mientras quede una contradicción de seguridad o review.
Pruebas para aceptar la release
- Estado de producción de automatizar el gate identificado
- Archivo o campo responsable enlazado
- Prueba repetida en un dispositivo limpio
- Diferencias iOS y Android documentadas
- Cada duda tiene responsable y fecha
- La evidencia no contiene secretos ni datos personales
Preguntas frecuentes
¿`.env` es seguro?
No cuando el valor acaba en el cliente.
¿EAS Secrets lo protege?
Protege el build, no el valor incrustado.
¿Sirve obfuscation?
No sustituye la gestión de secretos.
¿Qué hago al encontrarlo?
Revoca, rota, investiga y rediseña.