Los dispositivos virtuales te ofrecen una iteración rápida en macOS y cualquier escritorio - sin cables USB, reiniciamientos instantáneos y captura de pantallas repetibles para control de calidad de diseño. Combínalos con los atajos de Expo CLI para que los proyectos de SDK 57 se abran en el simulador correcto o AVD cada vez.
Tarjeta de referencia rápida - lista para copiar y pegar.
# Inicia Metro y abre el dispositivo virtual predeterminadonpx expo start# Presiona i → Simulador de iOS (solo macOS)# Presiona a → Emulador de Android (ANDROID_HOME + un AVD requerido)# Elige un dispositivo específico de manera interactiva# Shift+I → lista de simuladores de iOS# Shift+A → lista de emulador/dispositivos de Android# Lanza directamente sin el menú interactivonpx expo start --iosnpx expo start --android# Captura una pantalla del simulador/emulador iniciadoxcrun simctl io booted screenshot ./snapshots/ios-$(date +%Y%m%d-%H%M%S).pngadb exec-out screencap -p > ./snapshots/android-$(date +%Y%m%d-%H%M%S).png
Cuándo usarlo:
Trabajo diario de características cuando un dispositivo físico no es conveniente o no está disponible.
Verificación de diseños en múltiples tamaños de pantalla (iPhone SE, Pro Max, Pixel Fold, tablet).
Captura de pantallas base antes de una refactorización de estilos.
Reproducción de errores específicos del SO en un nivel API específico de iOS o Android.
Pruebas de humo en CI que arrancan un emulador y cargan una compilación de desarrollo.
npx expo start inicia Metro; presionar i o a le dice a Expo CLI que encuentre o arranque un simulador/AVD e instale Expo Go (flujo administrado) o abra tu compilación de desarrollo si una está instalada.
Expo CLI apunta al Simulador de iOS más recientemente abierto - si hay múltiples simuladores arrancados, el último enfocado gana. Usa Shift+I para seleccionar explícitamente.
Android requiere ANDROID_HOME en tu PATH más al menos un AVD creado en el Administrador de Dispositivos Virtuales de Android Studio. Expo CLI invoca emulator y adb bajo el capó.
Instantáneas aquí significan capturas PNG de la pantalla virtual - útiles para diffing visual, control de calidad de diseño e informes de errores. No son instantáneas de componentes Jest (ver Configuración de Jest para Expo).
RN 0.86 / SDK 57 compila contra Android 16 (API 36) - instala esa plataforma en Android Studio antes de que npx expo run:android o las compilaciones del emulador tengan éxito.
# Env de Android en macOS (agregar a ~/.zshrc)export ANDROID_HOME=$HOME/Library/Android/sdkexport PATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools# Abre Simulador manualmente cuando Expo CLI parece atascadoopen -a Simulator
import * as Device from "expo-device";// expo-device es la verificación confiable - simuladores/emuladores devuelven isDevice === falseif (__DEV__ && !Device.isDevice) { console.log("Dispositivo virtual - valida cámara, push y rendimiento en hardware.");}
Expo CLI atascado en "Abriendo simulador" - La aplicación Simulador a veces ignora el comando de apertura. Solución: Ejecuta open -a Simulator, elige Archivo > Abrir Simulador, selecciona un dispositivo y luego presiona i de nuevo.
El simulador de iOS incorrecto recibe el bundle - Múltiples simuladores arrancados confunden el direccionamiento. Solución: Cierra simuladores adicionales o usa Shift+I para seleccionar uno; Expo CLI siempre apunta al más recientemente abierto.
Desajuste de versión de adb de Android - El adb del sistema entra en conflicto con platform-tools del SDK. Solución: Pon $ANDROID_HOME/platform-tools primero en PATH; verifica con which adb.
Plataforma SDK 36 de Android faltante - Gradle falla con errores de SDK no encontrado en RN 0.86. Solución: Android Studio - Plataformas SDK - instala Android 16 (API 36).
Desajuste de SDK de Expo Go en simulador - Un proyecto SDK 57 fresco puede no cargar en una instalación anterior de Expo Go. Solución: Ejecuta npx expo-go download ios 57 o crea una compilación de desarrollo.
Asumir que el simulador es igual al rendimiento del dispositivo - Los simuladores usan CPU/GPU de escritorio; los perfiles jank engañan. Solución: Perfila en hardware para objetivos de SLO de scroll y animación.
Capturas de pantalla con tema o locale incorrectos - Las capturas de matriz tomadas antes de que la aplicación establezca la apariencia se ven inconsistentes. Solución: Establece tema/locale en código de aplicación antes de capturar; almacena metadatos junto a los PNGs.
Inicia Metro con npx expo start y luego presiona i. Solo en macOS - Windows y Linux no pueden ejecutar el Simulador de iOS. Usa Shift+I para elegir un modelo específico.
¿Cómo abro el Emulador de Android?
Crea un AVD en Android Studio, asegúrate de que ANDROID_HOME esté configurado, ejecuta npx expo start y presiona a. O ejecuta npx expo start --android para lanzar al iniciar el servidor.
¿Qué versión del SDK de Android requiere React Native 0.86?
Android 16 (API 36). Instálalo en Android Studio - Configuración > Lenguajes y Frameworks > Android SDK > Plataformas SDK.
¿Por qué Expo CLI instala Expo Go en mi emulador?
En un proyecto administrado sin una compilación de desarrollo, Expo Go es el shell nativo del host. Para módulos nativos personalizados, instala expo-dev-client y usa una compilación de desarrollo en su lugar.
¿Cómo tomo una pantalla del Simulador de iOS?
xcrun simctl io booted screenshot screenshot.png
Reemplaza booted con un UDID específico de xcrun simctl list devices.
¿Cómo tomo una pantalla del Emulador de Android?
adb exec-out screencap -p > screenshot.png
Asegúrate de que exactamente un dispositivo esté conectado: adb devices.
¿Puedo ejecutar múltiples simuladores a la vez?
Sí en iOS - abre varios a través de Archivo > Abrir Simulador. Expo CLI apunta al más recientemente abierto. Para ejecuciones predecibles, arranca un simulador a la vez.
Shift+I no hace nada - ¿qué debo verificar?
Confirma que Herramientas de Línea de Comandos de Xcode estén instaladas (Xcode > Configuración > Ubicaciones), acepta la licencia de Xcode (sudo xcodebuild -license) y que al menos un runtime de iOS exista bajo Configuración > Componentes.
¿El Simulador de iOS soporta la cámara?
No - el hardware de cámara no está disponible. Usa un dispositivo físico o simula selectores de imágenes en dev.
¿Cómo listo dispositivos virtuales de Android disponibles?
emulator -list-avds
Crea nuevos AVDs en Android Studio - Administrador de Dispositivos Virtuales.
¿Qué es una matriz de dispositivos y cuántos dispositivos necesito?
Una matriz de dispositivos es un conjunto fijo de factores de forma y niveles de SO que pruebas en cada lanzamiento. Conjunto práctico mínimo: teléfono compacto, teléfono estándar y una tablet en ambos iOS y Android.
¿Debo usar Expo Go o una compilación de desarrollo en emuladores?
Expo Go está bien para picos solo de SDK. Cambia a una compilación de desarrollo cuando agregas módulos nativos, esquemas de URL personalizados o plugins que Expo Go no envía.
¿Cómo reinicio un Simulador de iOS corrupto?
En el menú de Simulador: Dispositivo > Borrar Todo el Contenido y Configuración. Esto corrige instalaciones atascadas y corrupción de poco disco.
¿Puedo desarrollar aplicaciones de iOS en Windows?
No - el Simulador de iOS requiere macOS. Usa un iPhone físico, un trabajador de Mac CI o servicios de Mac en la nube para compilaciones de iOS.