Guía de lanzamiento Expo

Checklist de envío App Store para Expo 2026

EAS Submit sube el binario, pero no completa automáticamente todos los requisitos de la ficha y la review.

LaunchLint Academy

12 minutos de lecturaRevisión editorial del equipo de LaunchLint
Ilustración del recorrido desde una configuración Expo hasta la revisión de la tienda
Una app está lista cuando configuración, comportamiento real y declaraciones de la tienda coinciden.
TL;DR

Respuesta breve

  • EAS Submit sube el archivo final de la app, pero no completa la ficha, la privacidad, las capturas ni las indicaciones para el equipo de revisión.
  • Antes de crear la app, verifica identidad, versiones, complementos y permisos. Después, prueba la versión de producción en dispositivos reales y compara el flujo con App Store Connect y Play Console.
  • Incluye la eliminación de cuenta, el acceso de prueba, las compras y el tratamiento de datos de servicios externos en cada publicación. Un proceso técnico correcto no equivale a aprobación.

1. Qué hace EAS Submit y qué sigue siendo tu responsabilidad

EAS Submit entrega el archivo iOS o Android a la tienda. En iOS llega a App Store Connect o TestFlight; en Android, al canal configurado. Reduce pasos manuales, pero Apple y Google siguen revisando la app, los datos de la ficha y las indicaciones proporcionadas.

Un EAS Build y EAS Submit correctos solo prueban que el archivo se pudo crear y transferir. No prueban que el inicio de sesión funcione para un evaluador nuevo, que los permisos estén bien explicados, que las declaraciones sean completas o que las compras y páginas públicas funcionen.

Después de subir la app aún debes:

  • Completar ficha, categoría, clasificación y disponibilidad
  • Comparar capturas y descripción con la versión de producción
  • Completar App Privacy y Data Safety
  • Añadir contacto, cuenta de prueba y pasos especiales
  • Hacer visibles compras y suscripciones
  • Enviar la app procesada a revisión

2. Fija identidad y versiones antes del build de producción

Bundle Identifier y Android Package Name conectan el binario con la ficha, firma, push y con frecuencia OAuth y deep links. Revísalos antes del primer upload. Una identidad publicada no se renombra como el nombre visible de la app.

Separa versión comercial y número técnico. Cada binario iOS nuevo necesita un buildNumber superior; Android usa versionCode. Con app.config dinámica, inspecciona los valores resueltos para producción y no una configuración de desarrollo.

Ejemplo: identidad mínima en app.json
{
  "expo": {
    "name": "My Production App",
    "slug": "my-production-app",
    "version": "1.0.0",
    "ios": {
      "bundleIdentifier": "com.example.myapp",
      "buildNumber": "1"
    },
    "android": {
      "package": "com.example.myapp",
      "versionCode": 1
    }
  }
}

Comprueba:

  • Identificadores y fichas coinciden
  • buildNumber y versionCode aumentan
  • Producción usa dominios API, OAuth y deep-link correctos
  • Icono, splash y nombre son finales
  • Conoces qué valores llegan desde variables de entorno

3. Explica los permisos desde el flujo del usuario

Las librerías Expo pueden añadir permisos mediante Config Plugins o Android manifests incluidos. Inventaría dependencias, revisa la configuración resultante y elimina permisos que el flujo real no necesita.

En iOS, el Purpose String debe explicar una función verificable. ‘La app necesita la cámara’ repite el diálogo; ‘Usa la cámara para escanear el QR de una entrada’ explica valor y momento. Los cambios de Info.plist requieren un binario nuevo y no se corrigen vía OTA.

Ejemplo: motivo concreto y permiso Android bloqueado
{
  "expo": {
    "ios": {
      "infoPlist": {
        "NSCameraUsageDescription":
          "Use the camera to scan the QR code on an event ticket."
      }
    },
    "android": {
      "blockedPermissions": [
        "android.permission.RECORD_AUDIO"
      ]
    }
  }
}
  • Pedir acceso solo donde se necesita
  • Ofrecer alternativa al rechazo
  • Explicar finalidad y valor
  • Permitir activar acceso más tarde
  • Eliminar permisos nativos no utilizados

4. Alinea archivos del proyecto, comportamiento y declaraciones de privacidad

package.json muestra posibles bibliotecas y servicios externos, pero no genera una declaración completa. Los servicios de análisis, errores, inicio de sesión, publicidad o pagos pueden transmitir datos; la configuración y el uso real determinan qué se envía, cuándo, para qué y a quién.

Configuración del proyecto, comportamiento real y declaraciones de la tienda conectados
Una revisión fiable conecta señales de los archivos del proyecto, comportamiento observable y respuestas enviadas a las tiendas.
Qué demuestra cada capa
CapaPruebas útiles¿Suficiente?
Archivos del proyectoServicios externos, permisos, extensiones y direcciones webNo: solo son señales
App en ejecuciónMomento, consentimiento, uso opcional y transmisiónNo: faltan servidores y proveedores
ConsolaDatos, finalidades, uso compartido y borrado declaradosNo: debe coincidir con la app

Google incluye en Data Safety los datos transmitidos por servicios de terceros y mantiene al desarrollador como responsable. Documenta por servicio el tipo de dato, receptor, finalidad, obligatoriedad, retención y borrado; luego compáralo con la política de privacidad y ambos formularios.

5. Prueba el acceso y la eliminación como un evaluador externo

Si funciones centrales requieren login, invitación, rol, región o suscripción, proporciona una ruta estable. Apple solicita una cuenta demo activa o un modo demo completo. Evita datos personales, dispositivos internos y códigos temporales.

Datos fiables para el equipo de revisión:

  • Cuenta dedicada y servidor disponible
  • Pasos cortos hacia la función protegida
  • Detalles de roles, QR, hardware o ubicación
  • Estado de prueba para compras
  • Contacto disponible durante la revisión

La eliminación de cuenta es un flujo completo. Apple exige iniciarlo dentro de la app; Google añade una URL web para solicitudes. Prueba confirmación, reautenticación, datos vinculados, suscripciones y cualquier retención que debas explicar.

6. Compara capturas, promesas y compras con la app

Los datos de la ficha también se revisan. Elimina promesas de funciones ausentes o internas. Las capturas deben mostrar pantallas alcanzables. Abre soporte y privacidad en un navegador móvil sin iniciar sesión.

Los productos digitales deben ser visibles y funcionar durante la revisión. Explica condiciones especiales y prueba la restauración, los errores, una suscripción activa y la reinstalación. Tener una biblioteca de pagos no demuestra que esos casos estén resueltos.

  • Nombre y descripción coinciden con la app
  • Capturas reales y alcanzables
  • Páginas públicas con HTTPS
  • Compras visibles para el equipo de revisión
  • Indicaciones breves para el equipo
  • Sin textos provisionales ni avisos internos

7. Preflight de 24 horas

Congela brevemente la release, genera el build desde el commit previsto y prueba exactamente ese artefacto. Un cambio posterior de permisos, configuración nativa o SDK obliga a crear y revisar otro binario.

  • Registrar commit y configuración
  • Instalar builds iOS y Android en dispositivos reales
  • Probar inicio, login, rechazo de permiso, núcleo, compra y borrado
  • Comparar SDKs con privacidad
  • Revisar screenshots, textos, URLs y notas
  • Validar credenciales en otro dispositivo
  • Subir, comprobar procesamiento y enviar

Guarda una lista ligera con build ID, flujo, resultado esperado, resultado real y responsable. Tras una incidencia podrás separar mejor un defecto del binario de un problema de ficha o comunicación.

8. Qué aporta una revisión estática de los archivos del proyecto

El análisis estático encuentra identificadores, servicios externos, extensiones, textos de permisos y señales de inicio de sesión, pagos o seguimiento en archivos concretos. No puede demostrar todo el servidor, la cuenta de prueba ni cada interacción de la app en funcionamiento.

LaunchLint nunca ejecuta código ajeno. La revisión orienta la comprobación manual y relaciona pruebas con preguntas de la tienda, pero no reemplaza la responsabilidad del desarrollador ni la decisión final.

Preguntas habituales antes de enviar con Expo

¿Un EAS Build correcto basta para enviar?

No. Solo prueba que se creó el archivo de la app. El acceso de prueba, los datos de la ficha, la privacidad, las compras y los flujos reales se revisan aparte.

¿Puedo corregir un permiso iOS por OTA?

No. Los cambios de Info.plist requieren un binario nativo nuevo.

¿La cuenta demo debe tener datos reales?

No. Usa una cuenta dedicada sin datos personales ni códigos temporales.

¿LaunchLint garantiza aprobación?

No. Identifica riesgos y pruebas en los archivos del proyecto; Apple y Google toman la decisión final.

Fuentes oficiales

Las afirmaciones sobre políticas y plataforma se apoyan en documentación oficial. Las reglas cambian; revisa siempre la versión enlazada antes del envío.