platform-ios: wait for the simulator to settle after boot before launching the app
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- react-native, typescript
- Área
- ci-cd, mobile, testing-qa
Línea de trabajo
Empieza en packages/platform-ios/src/instance.ts, en prepareSimulator; después lee waitForBoot en packages/platform-ios/src/xcrun/simctl.ts y los umbrales del host en startup-strategy.ts. Compara las rutas booted y already-Booting antes de elegir el comportamiento de estabilización acotado por capacidad de respuesta o basado en carga. Se considera terminado cuando los hosts con recursos limitados esperan de forma segura después del arranque, la espera tiene un límite y su duración aparece en los diagnósticos sin retrasar indefinidamente el inicio.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Context
Harness runs unreliably on small CI hosts (e.g. GitHub macos-latest: 3 vCPU / 7 GB); a common symptom is the app failing to connect to the bridge shortly after simulator boot.
prepareSimulator in packages/platform-ios/src/instance.ts boots the simulator and waits with xcrun simctl bootstatus <udid> -b (packages/platform-ios/src/xcrun/simctl.ts waitForBoot). bootstatus -b returns as soon as the device reports Booted, but SpringBoard and the first-boot daemons keep consuming CPU for a while afterwards. On a 3-core host the app is then installed and launched into a simulator that is still busy, which stretches JS evaluation and can push startup past bundleStartTimeout / readyTimeout.
Proposal
Add a bounded "settle" step after waitForBoot, applied on constrained hosts (reuse the host-capability thresholds from startup-strategy.ts):
- Poll a direct responsiveness probe, e.g.
xcrun simctl spawn <udid> launchctl list, and proceed once two consecutive calls complete under ~300 ms; and/or - wait until
os.loadavg()[0]drops belowcores × 1.5; - cap the wait (e.g. 45 s) so a persistently busy host does not stall startup, and record the settle duration in diagnostics.
This should apply both when Harness booted the simulator and when it found one already Booting.
Files
packages/platform-ios/src/instance.ts(prepareSimulator)packages/platform-ios/src/xcrun/simctl.ts(waitForBoot)packages/platform-ios/src/startup-strategy.ts
Part of a broader effort to make Harness reliable on constrained CI runners.
- Lenguaje dominante
- TypeScript
- Estrellas
- 330
- Forks
- 17
- Merge medio
- 23 h 53 min
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de callstackincubator/react-native-harness
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Support for modern Vega SDKsAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
Todos los issues de callstackincubator/react-native-harness
Issues similares
-
bug via-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
pingdotgg/t3code#14452 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
solana-foundation/program-examples#747 · 1 comentario ·
Los mantenedores suelen responder en 9 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
remotion-dev/remotion#11847 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
openwatersio/slackwater#355 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
melgarafael/DeskcommCRM#1998 · 3 comentarios ·
Los mantenedores suelen responder en 1 día