Expo Go es una app gratuita, disponible en la App Store y Google Play, que ejecuta su proyecto Expo en un teléfono real sin compilar nada. Arranca el proyecto en su ordenador, escanea un código QR, y la pantalla que estaba editando aparece en su iPhone o dispositivo Android unos segundos después. Guarda un archivo, y el teléfono se actualiza. Para una primera versión de una app, es el camino más corto entre el código y una pantalla táctil real.
También es la herramienta que peor entienden los recién llegados. Expo Go no es su app, y nunca es el binario que publicará: es un contenedor que ya incluye la parte nativa del Expo SDK y carga únicamente su JavaScript. Ese único hecho explica qué puede probar, qué no, los errores de versión con los que se encontrará y por qué Expo añadió una regla de inicio de sesión con cuenta en 2026. Esta guía lo cubre todo, con el flujo para ambas plataformas.
Si Expo en sí es nuevo para usted, empiece por nuestra introducción a qué es Expo; este artículo da por hecho que tiene un proyecto y quiere verlo en un teléfono.
Qué hace Expo Go en realidad
Una app Expo tiene dos mitades. La mitad nativa es código compilado: el runtime de React Native, los módulos del Expo SDK para la cámara, la ubicación, las notificaciones o los archivos, y cualquier biblioteca nativa que añada. La mitad JavaScript son sus pantallas y su lógica, empaquetadas por el servidor de desarrollo Metro. Compilar la mitad nativa lleva minutos en un Mac o en un servicio de compilación en la nube; empaquetar la mitad JavaScript lleva segundos.
Expo Go incluye la mitad nativa ya compilada, una vez, para todo el mundo: un conjunto fijo de módulos del Expo SDK compilados en una única app que Expo publica en las tiendas. Cuando escanea el código QR, Expo Go pide un manifiesto a Metro, descarga su bundle de JavaScript por la red local y lo ejecuta dentro de su propia carcasa nativa. No se compila nada de su lado. Por eso es tan rápido, y por eso solo funciona cuando su proyecto usa la misma versión del SDK que el build de Expo Go instalado en el teléfono.
Probar en iPhone y Android, paso a paso
El flujo es el mismo en ambas plataformas, con una diferencia en 2026: en iPhone, Expo Go comprueba ahora que ha iniciado sesión con la misma cuenta de Expo que la línea de comandos que arrancó el proyecto.
1. Instalar Expo Go e iniciar sesión
En iPhone, instale Expo Go desde la App Store. La versión para el SDK 57 volvió a la tienda en septiembre de 2026 tras varios meses en la cola de revisión de Apple, durante los cuales había que instalarla como build personal de TestFlight. En Android, instálela desde Google Play, o desde expo.dev/go si necesita una versión de SDK más antigua, que la tienda ya no ofrece.
Después cree una cuenta gratuita de Expo en expo.dev si no tiene una, e inicie sesión dos veces: en Expo Go en el teléfono, y en la Expo CLI de su ordenador con el comando expo login. Desde el 3 de septiembre de 2026, Expo exige la misma cuenta en ambos lados para abrir un proyecto en SDK 57 con Expo Go en un iPhone físico. Los simuladores están exentos, los development builds están exentos, y Android recibirá la misma regla más adelante. Si las cuentas no coinciden, el proyecto sencillamente se niega a abrirse.
2. Arrancar el proyecto y escanear el código QR
En la carpeta del proyecto, ejecute npx expo start. Metro arranca, imprime un código QR en el terminal y una dirección con la forma exp://192.168.x.x:8081. En iPhone, abra la app Cámara del sistema, apunte al código QR y toque el aviso: abre Expo Go directamente. En Android, abra Expo Go y use su botón «Scan QR code». Si el teléfono y el ordenador se ven entre sí, el bundle se descarga y aparece su primera pantalla.
A partir de ahí, cada guardado dispara Fast Refresh: el componente modificado se recarga en su sitio, conservando el estado de la app cuando puede. Agite el teléfono para abrir el menú de desarrollador, que permite recargar a mano, abrir el inspector de elementos o activar el monitor de rendimiento.
3. Misma red, túnel y los errores habituales
El teléfono carga el bundle desde su ordenador, así que ambos deben estar en la misma red Wi-Fi y la red debe permitir que los dispositivos se comuniquen entre sí. Las redes de oficinas y hoteles lo bloquean a menudo. La solución es un túnel: npx expo start --tunnel encamina la conexión a través de una URL de ngrok que funciona desde cualquier red, a cambio de una primera carga más lenta. La mayoría de los problemas restantes se reducen a un puñado de mensajes:
| Lo que ve | Lo que significa | Qué hacer |
|---|---|---|
| Project is incompatible with this version of Expo Go | El SDK de su proyecto y el Expo Go instalado no coinciden | Actualice el proyecto con npx expo install expo@latest, o instale el build de Expo Go de su SDK desde expo.dev/go |
| El proyecto no se abre, o le pide iniciar sesión | Solo en iPhone: la CLI y Expo Go no han iniciado sesión con la misma cuenta | Ejecute npx expo whoami, inicie sesión con expo login y compruebe el nombre de la cuenta en la pestaña de perfil de Expo Go |
| Something went wrong: could not connect to the server | El teléfono no consigue llegar a su ordenador por la red | Mismo Wi-Fi para ambos, permita el puerto 8081 en el cortafuegos, o reinicie con --tunnel |
| Native module cannot be null, o una pantalla roja al arrancar | El proyecto usa código nativo que no forma parte del Expo SDK | Expo Go no puede ejecutarlo: pase a un development build para ese proyecto |
| La app se abre pero una función no hace nada, sin error | Una capacidad que Expo Go no admite, como las notificaciones push remotas | Pruebe esa función en un development build o en TestFlight |
Qué no puede probar Expo Go, y qué usar en su lugar
Como la mitad nativa es fija, Expo Go se detiene exactamente donde su proyecto necesita código nativo que no está en el Expo SDK: una biblioteca nativa de terceros, un config plugin que modifica el proyecto iOS o Android, un módulo Swift o Kotlin propio. Tampoco puede mostrarle lo que solo existe en su propio binario: su icono y su pantalla de inicio, su bundle identifier, sus deep links, sus compras integradas. Desde el SDK 53, Expo también ha retirado las notificaciones push remotas de Expo Go y remite a los development builds para probarlas.
El sustituto es un development build: su propia app, compilada una vez con las herramientas de desarrollo dentro, que instala en el teléfono y luego recarga en directo exactamente igual que con Expo Go. Contiene sus módulos nativos, su icono y sus identificadores, y no necesita una cuenta de Expo para abrir un proyecto. La comprobación final antes del envío es, de nuevo, otra herramienta: TestFlight en iOS y el canal de pruebas internas de Google Play instalan el binario de producción real.
| Quiere comprobar | Expo Go | Development build | TestFlight / pruebas internas de Play |
|---|---|---|---|
| Pantallas, navegación, maquetación en una pantalla real | Sí | Sí | Sí |
| Cámara, ubicación, sensores, selector de imágenes (módulos expo-*) | Sí | Sí | Sí |
| Biblioteca nativa de terceros o módulo nativo propio | No | Sí | Sí |
| Notificaciones push remotas | No | Sí | Sí |
| Icono, pantalla de inicio, deep links, compras integradas | No | Sí | Sí |
| El binario exacto que instalarán los usuarios | No | No | Sí |
| Coste de puesta en marcha | Ninguno | Un build (EAS o local), luego recarga en directo | Un build de producción y una cuenta de tienda |
Expo Go dentro de Cadrant
Los proyectos móviles nativos creados con el creador de apps móviles de Cadrant son apps Expo y React Native, así que se aplican las mismas reglas. El editor muestra una vista previa de la app en un marco de teléfono, y un código QR abre el proyecto en directo en Expo Go en su propio dispositivo. Por la regla de inicio de sesión de 2026, el código QR aparece una vez conectada su cuenta de Expo: cree una cuenta gratuita en expo.dev, genere un token de acceso personal, péguelo en Ajustes, Integraciones, Expo, y luego inicie sesión en Expo Go en el teléfono con esa misma cuenta. Cadrant arranca el servidor de desarrollo con su token, así que la comprobación de cuenta se supera.
La mayoría de las API expo-* se ejecutan ahí directamente, lo que cubre las pruebas del día a día: cámara, ubicación, sensores, selector de imágenes, notificaciones locales. Para código nativo fuera del SDK, y para una comprobación final, publique un build real: el binario iOS se compila en su cuenta de Expo y se entrega en su App Store Connect, donde TestFlight lo instala en sus dispositivos; en Android, el build llega al canal de pruebas internas de su Play Console. La documentación de apps móviles nativas detalla ambos caminos.
La versión corta
- Expo Go es un contenedor precompilado del Expo SDK: carga su JavaScript, nunca su código nativo, y debe coincidir con la versión del SDK de su proyecto.
- En iPhone, desde septiembre de 2026, inicie sesión con la misma cuenta de Expo en la CLI y en Expo Go, o el proyecto no se abrirá; los simuladores y los development builds están exentos.
- Mismo Wi-Fi o un túnel, y luego escanear: la app Cámara en iPhone, el escáner integrado en Android.
- Los módulos nativos propios, las notificaciones push remotas, los iconos, los deep links y las compras necesitan un development build; el binario exacto necesita TestFlight o el canal interno de Play.
Use Expo Go para lo que mejor hace, ver una pantalla en un teléfono real treinta segundos después de escribirla, y pase a un development build el día que su proyecto necesite algo que el contenedor no tiene. El cambio es un build único, no una reescritura.