Máquinas aisladas
Cada agente se ejecuta en su propia VM en la nube con un entorno de desarrollo completo. Clona tu repositorio, trabaja en una rama aparte y sube el resultado para que lo revises.
Cursor
Los background agents de Cursor, que ahora se llaman Cloud Agents, se ejecutan en máquinas aisladas en la nube, trabajan en su propia rama y te devuelven un pull request. Eso encaja muy bien con la preparación para el App Store: divide el trabajo en tareas independientes, lánzalas en paralelo y revisa cada resultado como el PR de un compañero antes de que nada llegue a la compilación nativa.
Desde $109 de pago único por plataforma, o deja que nuestro equipo lo haga todo desde $698.
Una pasada de preparación para la tienda es un checklist de correcciones casi siempre independientes: páginas legales, eliminación de cuenta, diseño móvil, estados de error, ocultar elementos exclusivos de la web, notas para la revisión. En una sola sesión local larga, estos cambios se acumulan en un único diff difícil de revisar. Repartidas entre agentes en la nube, cada tarea toca sus propios archivos, llega como su propio pull request y se puede aceptar, devolver o repetir por separado.
El objetivo es el mismo que en el flujo completo con Cursor: una app web que se comporte como una app cuando WebViewGold la carga en un WebView nativo. Esta página trata solo la parte en paralelo y lo que sigue siendo cosa tuya. Todo lo demás sobre publicar proyectos de Cursor está reunido en la página principal de Cursor.
Cada agente se ejecuta en su propia VM en la nube con un entorno de desarrollo completo. Clona tu repositorio, trabaja en una rama aparte y sube el resultado para que lo revises.
Elige Cloud bajo el campo del agente en Cursor, usa cursor.com/agents desde cualquier dispositivo, menciona a @cursor en Slack o Linear, o comenta @cursor en un issue o pull request de GitHub.
Un administrador de la cuenta de Cursor conecta el control de versiones (GitHub, GitLab, Bitbucket Cloud o Azure DevOps), y el agente necesita acceso de lectura y escritura al repositorio.
Añade las claves de API y las credenciales de prueba como secretos en el panel de Cursor en lugar de hacer commit de un archivo .env. Se inyectan cuando arranca un agente, así que los agentes que ya están en marcha no ven los nuevos.
La documentación de los cloud agents de Cursor lo dice claramente, así que pon el contexto de la app nativa y las invariantes de las tiendas en AGENTS.md, no solo en .cursor/rules.
Las ejecuciones se facturan a la tarifa del modelo elegido, y no todos los planes las incluyen. La primera vez fijas un límite de gasto; mantenlo en un valor razonable antes de lanzar seis a la vez.
Los agentes pueden preparar el entorno ellos mismos (y guardarlo como snapshot), o puedes hacer commit de .cursor/environment.json. Para una app web típica de Node basta con esto: instalar dependencias, ejecutar el servidor de desarrollo en un terminal que el agente pueda ver y exponer el puerto. Los nombres de los campos vienen del esquema publicado por Cursor; la descripción del terminal se le muestra al agente.
{
"install": "npm ci",
"terminals": [
{
"name": "web",
"command": "npm run dev -- --port 3000",
"description": "Dev server. Check changed routes here at 390 px and 320 px width."
}
],
"ports": [
{ "name": "web app", "port": 3000 }
]
}
Con una buena versión optimizada de su aplicación web, puedes tener una impresionante aplicación móvil en un par de minutos. ¡Además del servicio al cliente es muy agradable y muy útil! ¡Puedo recomendar WebViewgold :-)
Haz commit de esto en la rama principal antes de lanzar nada. El primer bloque es el contexto compartido de la app nativa; el segundo le dice a cada agente cómo comportarse como uno de varios trabajadores.
## Native app (WebViewGold)
This web app also ships as iOS and Android apps. WebViewGold loads
https://app.example.com in a native WebView; every deploy is live in both apps.
- Detect the app only with isNativeApp() (user agent contains "MyAppNative").
- Native features are URL schemes from https://www.webviewgold.com/llms-full.txt.
Never invent one; always keep a web fallback.
- Store invariants: real /privacy and /terms; in-app account deletion (server-side);
Sign in with Apple next to any social login; no external checkout for digital
goods in the iOS app; loading, empty and error states; layout works at 320 px.
## Cloud agents
- One task per agent. Touch only the files the task needs. If you must edit a
shared layout file, say so at the top of the PR description.
- Run npm run lint, npm test and npm run build before you push.
- Check every route you changed in the browser at 390 px and 320 px and describe
what you saw in the PR.
- PR description: what changed, how you verified it, open questions, and what
needs a test on a real iPhone and Android phone.
- You cannot run the native app. Never claim you tested on iOS or Android.| Agente | Tarea | Archivos típicos | Terminada cuando |
|---|---|---|---|
| 1. Páginas legales | /privacy y /terms reales basadas en lo que recopila el código, enlazadas desde el pie de página y los ajustes | Rutas, pie de página, pantalla de ajustes | Ambas URL cargan directamente y nombran cada SDK que recopila datos |
| 2. Eliminación de cuenta | Eliminar cuenta en los ajustes más una página pública /delete-account; el servidor borra datos, archivos y el usuario de autenticación | Ajustes, ruta de API, helpers de autenticación | Un usuario de prueba desaparece de la base de datos y del proveedor de autenticación (requisitos de eliminación) |
| 3. Estados y callejones sin salida | Estados de carga, vacío y error con reintento; una página 404; quitar los botones de "próximamente" | Componentes de datos, router | Los clics sin conexión muestran un estado de error, nunca una pantalla en blanco |
| 4. Modo app | Helper isNativeApp(); ocultar dentro de la app las insignias de las tiendas, los avisos de instalación y las insignias del builder | Helper de plataforma, banners | Al falsear el user agent se oculta todo elemento exclusivo de la web |
| 5. Borradores para las tiendas | docs/store/: notas para la revisión, descripción, palabras clave y un inventario de datos para App Privacy y Data safety | Solo documentación | Cada tipo de dato del inventario remite a código del repositorio |
| 6. Diseño móvil (al final) | Desbordamiento, áreas de toque, relleno de área segura, campos de 16 px, ningún control que solo funcione con hover | CSS, componentes de layout | Sin scroll horizontal a 320 px en ninguna ruta principal |
Mantén idéntica la parte común para que todos los pull requests tengan el mismo aspecto; solo cambia el bloque de la tarea. El ejemplo muestra el agente 2.
Contexto: esta app web también se publica como apps nativas de iOS y Android mediante WebViewGold, que carga nuestra URL de producción en un WKWebView y un Android WebView. Lee primero AGENTS.md y sigue sus secciones "Native app" y "Cloud agents". Reglas para esta ejecución: - Trabaja solo en la tarea de abajo. No refactorices código no relacionado ni añadas dependencias salvo que la tarea las necesite. - Ejecuta lint, tests y la compilación de producción antes de hacer push. - Abre un pull request titulado "store-readiness: <nombre de la tarea>". En la descripción, enumera qué cambió, cómo lo verificaste (rutas y anchos), las preguntas abiertas y lo que debo probar en un iPhone y un teléfono Android reales. - Si algo es ambiguo, por ejemplo qué tablas contienen datos de usuarios, detente y pregunta en el pull request en lugar de adivinar. TAREA: Eliminación de cuenta - Añade en los ajustes una acción "Eliminar cuenta" con un paso de confirmación. - Al confirmar, llama a un endpoint del servidor que borre las filas del usuario en todas las tablas que lo referencian, borre los archivos almacenados del usuario y elimine el usuario de autenticación. Después cierra la sesión y muestra una pantalla de confirmación. - Añade una página pública /delete-account que explique los pasos dentro de la app y ofrezca una forma de solicitar la eliminación sin la app (formulario o dirección de correo). - Añade un test que cree un usuario, lo elimine y compruebe que no quedan filas ni archivos.
Alrededor de una hora de preparación; después, sobre todo tiempo de revisión.
Un administrador conecta el proveedor del repositorio en Cursor. Haz commit de environment.json, o deja que el primer agente prepare el entorno y lo guarde como snapshot para que los siguientes arranquen más rápido.
Los agentes leen AGENTS.md; Bugbot lee .cursor/BUGBOT.md (ejemplo más abajo). Ambos tienen que estar en la rama principal antes del primer lanzamiento.
Guarda la URL de la base de datos de staging, las credenciales de prueba y las claves de API como secretos del panel. Sin un login de prueba, los agentes no pueden comprobar las pantallas con sesión iniciada y te dirán que "deberían funcionar".
Lánzalos desde el campo del agente (Cloud), desde cursor.com/agents, o crea un issue de GitHub por tarea y comenta @cursor con el prompt. Lanza el agente 6 cuando se hayan fusionado los demás, porque el trabajo de layout toca los mismos componentes.
Lee el diff y la descripción, deja que Bugbot comente y abre el despliegue de vista previa en el navegador de tu teléfono. Para pedir cambios, comenta @cursor en el pull request con lo que hay que corregir.
Fusiona en un orden lógico, despliega producción y luego prueba la compilación de WebViewGold en dispositivos reales. Los agentes en la nube no pueden ejecutar la app nativa, así que este paso sigue siendo tuyo.
Bugbot no usa tus archivos .cursor/rules; lee .cursor/BUGBOT.md (siempre el de la raíz, y los anidados cerca de los archivos modificados). Se ejecuta con cada actualización de un pull request, y comentar cursor review o bugbot run lo lanza a mano.
# Store review rules
This app ships as iOS and Android apps via WebViewGold (native WebView around our URL).
Flag as a bug:
- New fixed or sticky UI without env(safe-area-inset-*) padding.
- Tap targets smaller than 44 x 44 px, or hover-only interactions.
- OAuth opened via window.open, target="_blank" or a popup.
- A native URL scheme (registerpush://, shareapp://, bioauth:// ...) called without
an isNativeApp() check or without a web fallback.
- Purchase or upgrade buttons for digital goods that link to an external checkout
inside the native app.
- Removing or breaking /privacy, /terms, /delete-account or the Delete account action.
- Data fetching without loading, empty and error states.
- Secrets or service-role keys in client-side code.
Ignore: styling preferences, naming, and refactors that do not change behavior.Sí. Cursor cambió el nombre de Background Agents a Cloud Agents. Los tutoriales antiguos siguen usando el nombre anterior; la idea es la misma: un agente en una VM aislada en la nube que trabaja en su propia rama y te devuelve el resultado.
La documentación de los cloud agents de Cursor dice explícitamente que leen AGENTS.md, así que ese es el lugar seguro para todo lo que cada agente debe cumplir. Mantén tus reglas de proyecto para el trabajo local, con las mismas invariantes.
No. Compilar y firmar una app de iOS requiere Xcode en macOS, y los agentes trabajan en entornos de desarrollo en la nube. Compila con Xcode en un Mac o con el Cloud Builder de WebViewGold, que compila y sube ambas apps desde el navegador.
Sí. Una vez conectado el control de versiones, comenta @cursor en un issue o un pull request con tus instrucciones. Un issue por tarea de preparación te deja además un registro ordenado de lo que se hizo.
Los agentes en la nube trabajan en una rama aparte y la suben para que la revises. Protege de todos modos tu rama principal, para que nada llegue a producción sin una revisión humana.
Tantos como tareas independientes tengas. Para esta pasada encajan seis, pero empieza con dos o tres hasta que confíes en el resultado, y deja el trabajo de layout para el final.
El mismo resultado, con distinta cantidad de trabajo por tu parte. Las tres incluyen la garantía de aprobación y soporte humano 24/7.
$109 por plataforma, pago único
La licencia de WebViewGold: un proyecto de Xcode o Android Studio listo para usar. Pega tu URL, define nombre e icono, activa funciones, compila y envía. Actualizaciones gratuitas para siempre.
Ver planes en la página principal$349 por licencia, complemento de pago único
Sin Mac, sin Xcode, sin Android Studio: configura en el navegador, compilamos ambas apps en la nube y las entregamos a App Store Connect y a Play Console.
Cómo funciona el Cloud Builder Prueba la demo gratuita$698 por plataforma $798
Envíanos tu URL y tu icono. Nuestro equipo configura, compila y entrega tu app en 72 horas, en marca blanca y con los proyectos fuente. Ambas plataformas por $1,158.
Detalles del Full Service Con tecnología dePrecios de la Oferta de invierno válidos hasta el 31 de diciembre de 2026.
Garantía de aprobación en App Store & Google Play – o te devolvemos el dinero en 14 días
¿Prefieres delegarlo? Full Service: configuramos, compilamos y entregamos en 72 horas, desde $698 por plataforma. ¿Preguntas? Chatea con nosotros 24/7.
Los reembolsos se conceden bajo las condiciones indicadas en nuestras FAQ: un rechazo por motivos ajenos al contenido por parte de Apple y/o Google, reclamado dentro de los 14 días posteriores a la compra.