De Gemini CLI al App Store y Google Play: GEMINI.md, Firebase Hosting y WebViewGold
Gemini CLI puede crear y desplegar tu app web desde el terminal; WebViewGold convierte la URL desplegada en apps nativas de iOS y Android. Esta guía te da un GEMINI.md que mantiene cada cambio a salvo para las tiendas, una vía de despliegue con Firebase Hosting, un prompt de preparación listo para pegar y los ajustes de Config.swift y Config.java. Antes, un cambio de 2026: Google trasladó las cuentas de consumidor de Gemini CLI a Antigravity CLI, así que comprueba qué herramienta estás usando realmente.
Desde $109 de pago único por plataforma, o deja que nuestro equipo lo haga todo desde $698.
Garantía de aprobación – o te devolvemos el dinero en 14 días
Sin programar
Pago único, actualizaciones gratuitas
Soporte humano 24/7
Hecho en Alemania desde 2014 · ISO 27001
9:41
Tu app
Tu appYa en tu bolsillo
App Store · Google Play Aprobada
Qué estás construyendo
Una app WebViewGold es un proyecto nativo de iOS o Android cuya pantalla principal es un WebView que apunta a tu URL de producción. Gemini CLI nunca tiene que generar Swift ni Kotlin para esto: sigue trabajando en el proyecto web, tú despliegas y ambas apps de las tiendas muestran la nueva versión en el siguiente arranque. La parte nativa es una lista corta de opciones documentadas en Config.swift y Config.java, más tu icono, el nombre y la firma.
Gemini CLI encaja bien porque ya vive donde ocurre el trabajo. Lee tus archivos, propone ediciones y ejecuta comandos de shell (con tu aprobación, o directamente con el modo shell !), así que la misma sesión puede corregir un fallo de layout, ejecutar la compilación y llamar a Firebase CLI. Si además quieres que vea los proyectos de WebViewGold, añade su carpeta con /directory add o arranca con --include-directories, y mantén la firma fuera de su alcance.
Si empezaste en Firebase Studio (que Google está cerrando: sin workspaces nuevos desde el 22 de junio de 2026 y cierre definitivo el 22 de marzo de 2027) o exportaste un prototipo de Google AI Studio, exporta el código a una carpeta local o a GitHub y sigue aquí. Tus backends de Firebase Auth, Firestore y App Hosting siguen funcionando con independencia de esos editores. ¿Comparando herramientas primero? El resumen de agentes de programación con IA recoge todos los agentes para los que tenemos guías.
Un GEMINI.md que mantiene al agente atento a las tiendas
Gemini CLI carga ~/.gemini/GEMINI.md y todos los GEMINI.md de tu workspace y de sus carpetas superiores, los concatena y los envía con cada prompt (documentación). Ejecuta /init para generar un borrador a partir de tu código y añade después una sección como esta. /memory show muestra exactamente lo que se ha cargado.
markdown
# Project context
## Native app context (WebViewGold)
- This web app also ships as iOS and Android apps built with WebViewGold. The apps
load https://app.example.com in a WKWebView / Android WebView. Every deploy is live
in both apps; only changes in ios/ or android/ need a new store build.
- Hosting: Firebase Hosting, static build in dist/. Deploy only when I ask, with
`npm run build && firebase deploy --only hosting`.
- The apps send a custom user agent containing the token WebViewGoldApp.
Branch on isNativeApp() in src/lib/native.ts, never on generic WebView sniffing.
- Native features are URL schemes handled by the wrapper (registerpush://,
getonesignalplayerid://, shareapp:// ...). Use only schemes documented in
https://www.webviewgold.com/llms-full.txt and keep a browser fallback.
## Store rules every change must respect
- Layout works from 320 px wide; fixed bars use env(safe-area-inset-*);
tap targets at least 44 x 44 px; no hover-only controls.
- /privacy, /terms, /delete-account and the in-app Delete account action keep working.
- Sign in with Apple stays next to any other social login (Apple 4.8).
- No new web checkout for digital goods without asking me (Apple 3.1.1).
- No popup windows for sign-in or payment inside the app.
- Only publishable keys in client code. A Gemini API key, Stripe secret key or
service account never goes into a VITE_ variable or into src/.
## Out of bounds
- Do not edit ios/ or android/ unless the task says so.
- Never touch signing, provisioning, keystores or the WebViewGold purchase code.
@./docs/store-checklist.md
¡Estoy muy feliz de haber comprado esta aplicación! Documentación extremadamente fácil y excelente. Estaba en contacto con el servicio al cliente, respondieron muy rápido y de forma muy amigable. Resolvieron mi pregunta en un día. 10/10 lo recomendaría".
¿Ya tienes un AGENTS.md para Codex u otros agentes, o piensas pasarte a Antigravity CLI? Mantén un solo archivo y dile a Gemini CLI que lo lea mediante context.fileName en el .gemini/settings.json del proyecto. El mismo archivo puede registrar el servidor MCP de Firebase, que da al agente herramientas de Firebase (entre ellas una de despliegue) además de los comandos de shell. La plantilla AGENTS.md y la plantilla CLAUDE.md contienen conjuntos de reglas más largos que puedes incorporar.
Cuenta con un día de trabajo; las cuentas y las revisiones de las tiendas son la parte lenta.
Termina la app web en local
Deja que Gemini CLI cree funciones como siempre, pero prueba cada pantalla a ancho de teléfono (375 px en la barra de dispositivos de tu navegador) desde el principio. Pídele que añada pronto el helper isNativeApp() para que los prompts posteriores puedan contar con él.
Despliega en Firebase Hosting
Ejecuta tú mismo la configuración inicial de abajo (firebase login abre un navegador) y después deja que el agente ejecute compilaciones y despliegues con tu aprobación. Tu sitio se sirve en PROJECT_ID.web.app; conecta un dominio propio en la consola de Firebase antes de compilar las apps, porque la URL va compilada dentro de ellas. Las apps de Next.js o Angular renderizadas en el servidor van en Firebase App Hosting (requiere el plan Blaze).
Ejecuta el prompt de preparación para la tienda
Pega el prompt de abajo. Empieza en Plan Mode (/plan) si tu versión lo ofrece, lee el plan y luego deja que lo implemente. Activa los checkpoints en los ajustes para que /restore pueda deshacer una mala edición.
Añade valor nativo
Los revisores aplican la Directriz 4.2 a las apps basadas en web. Las notificaciones push son la respuesta habitual: en iOS pon askforpushpermissionatfirstrun en false y llama a registerpush:// después del onboarding; luego guarda en el perfil del usuario el ID de suscripción que devuelve getonesignalplayerid:// (o getfirebaseplayerid://).
Configura WebViewGold
iOS (Config.swift): host, webviewurl, useragent_iphone, useragent_ipad, interruptores de push. Android (Config.java): HOST, HOME_URL, USER_AGENT, PUSH_ENABLED o FIREBASE_PUSH_ENABLED. La tabla de más abajo indica dónde va cada ajuste.
Compila y envía
Xcode y Android Studio si los tienes; si no, el Cloud Builder compila ambas apps en el navegador y las sube a App Store Connect y a la Play Console. Pide a Gemini CLI que redacte las respuestas de privacidad y las notas para la revisión a partir del código real, y envía.
Comandos de Firebase Hosting que el agente puede ejecutar
En firebase init hosting, elige tu carpeta de compilación (dist para Vite, build para Create React App) y responde que sí a la reescritura para single-page apps si usas enrutamiento en el cliente.
bash
# configuración inicial (ejecuta tú el login, abre un navegador)
npm install -g firebase-tools
firebase login
firebase init hosting
# en cada lanzamiento
npm run build
firebase deploy --only hosting
# URL de vista previa temporal, p. ej. para una compilación de prueba de la app
firebase hosting:channel:deploy store-check --expires 7d
El prompt de preparación para la tienda para Gemini CLI
Pide primero un plan, porque varios puntos (autenticación, pagos) necesitan tu decisión antes de cambiar código.
Pégalo en Gemini CLI en la raíz de tu proyecto
Lee primero GEMINI.md. Esta app web también se publicará como apps nativas de iOS y Android mediante WebViewGold, que carga nuestra URL de Firebase Hosting en un WebView. Audita el proyecto y dame un plan numerado antes de cambiar nada. Espera mi OK.
Auditoría:
1. Móvil: etiqueta meta viewport, sin scroll horizontal desde 320 px, relleno de área segura en la cabecera fija y en la barra de pestañas, áreas de toque de 44 px, ningún menú que solo funcione con hover.
2. Firebase Auth: enumera cada método de inicio de sesión y cada llamada a signInWithPopup (los popups no son fiables dentro de un WebView integrado). Explica las opciones seguras para un WebView; no cambies todavía los flujos. Recuérdame añadir nuestro dominio propio en Authentication > Settings > Authorized domains.
3. Sign in with Apple: si existe Google u otro inicio de sesión social, planifica el proveedor de Apple como opción equivalente.
4. Eliminación de cuenta: una acción Eliminar cuenta en los ajustes, respaldada por una Cloud Function invocable o una ruta del servidor que borre los documentos de Firestore, los archivos de Storage y el registro de Auth del usuario, y luego cierre la sesión. Además, una página pública /delete-account.
5. Privacidad: rutas /privacy y /terms redactadas a partir de lo que el código recopila de verdad (Analytics, Crashlytics, campos de Firestore, SDK de terceros).
6. Reglas de seguridad: informa de las reglas de Firestore o Storage que permitan el acceso sin request.auth o entre usuarios.
7. Secretos: enumera cada clave en src/, en los archivos env y en la configuración de Firebase. La configuración web de Firebase es lo esperado; una clave de la Gemini API, una clave secreta de Stripe o un archivo de cuenta de servicio en el código del cliente tienen que pasar al servidor.
8. Estados: estados de carga, vacío y error con reintento en cada pantalla que cargue datos.
9. Interfaz solo para la app: añade isNativeApp() (el user agent contiene WebViewGoldApp) y oculta dentro de la app los banners de descarga de la app, las insignias del builder y los muros de cookies.
10. firebase.json: confirma la reescritura SPA y que /privacy y /delete-account cargan directamente con HTTP 200.
Cuando lo apruebe: implementa en commits pequeños, ejecuta npm run build después de cada uno, nunca despliegues y termina con una lista de lo que debo hacer a mano en la consola de Firebase, App Store Connect y la Play Console.
Dónde vive cada ajuste
Qué
Proyecto web (Gemini CLI)
WebViewGold iOS
WebViewGold Android
URL de inicio
Firebase Hosting + dominio propio
host, webviewurl
HOST, HOME_URL
Detección de la app
isNativeApp() busca el token
useragent_iphone, useragent_ipad
USER_AGENT
Push con OneSignal
Llamar a registerpush:// (iOS), guardar onesignalplayerid
kPushEnabled, oneSignalID
PUSH_ENABLED, IDs de OneSignal en build.gradle
Push con Firebase Cloud Messaging
Guardar el ID de getfirebaseplayerid://
kFirebasePushEnabled + tu GoogleService-Info.plist
FIREBASE_PUSH_ENABLED + tu google-services.json
Variables inyectadas
Leer los IDs sin llamar antes a un esquema
autoInjectVariable
AUTO_INJECT_VARIABLES
Errores típicos en proyectos con Gemini CLI
El modo YOLO durante una pasada para las tiendas. Con todas las acciones aprobadas automáticamente, el agente puede ejecutar firebase deploy contra producción a mitad de un refactor. Mantén activas las aprobaciones para los comandos de shell y despliega tú.
Un GEMINI.md olvidado más arriba. Un archivo en una carpeta superior o en ~/.gemini/ también se concatena y puede contradecir las reglas de tu proyecto. Revisa /memory show una vez por proyecto.
Una clave de la Gemini API en el bundle del navegador, algo típico en prototipos exportados de Google AI Studio. Cualquiera puede leerla desde tu sitio. Pasa las llamadas a Gemini por una Cloud Function; la guía de secretos explica qué claves pueden ir en el cliente.
Compilar la app con la dirección web.app y cambiar a tu propio dominio más tarde. Eso supone una nueva compilación para la tienda; conecta primero el dominio.
Un inicio de sesión que funciona con el dominio propio en Safari pero falla en la app, porque el dominio falta en los dominios autorizados de Firebase Auth o porque el inicio de sesión con Google abre un popup. El checklist de Firebase repasa las opciones.
Scripts y jobs de CI que llaman a gemini con un login de consumidor. Dejaron de funcionar el 18 de junio de 2026; cámbialos a una clave de API de pago o a Antigravity CLI.
Checklist antes de enviar
/memory show muestra solo los archivos de contexto que esperas.
La compilación de producción está en tu dominio propio, y /privacy y /delete-account se abren directamente sin redirigir a la página de inicio.
Los dominios autorizados de Firebase Auth incluyen el dominio propio; el inicio de sesión funciona dentro de una compilación de prueba de la app.
Ninguna regla de Firestore o Storage permite read, write: if true.
En modo avión aparece la pantalla sin conexión de WebViewGold en lugar de una página en blanco.
La solicitud de permiso de push aparece después del onboarding, no en la primera pantalla.
¿Gemini CLI sigue disponible en noviembre de 2026?
Sí, para los clientes de Gemini Code Assist Standard y Enterprise y con claves de pago de la Gemini API o credenciales de Gemini Enterprise Agent Platform, según Google. Las cuentas individuales gratuitas y los suscriptores de Google AI Pro y Ultra pasaron a Antigravity CLI el 18 de junio de 2026. El flujo y los archivos de contexto de esta guía funcionan con ambos.
¿Llamo al archivo de contexto GEMINI.md o AGENTS.md?
Los dos funcionan. GEMINI.md es el predeterminado de Gemini CLI; AGENTS.md lo leen Antigravity, Codex, Cline, Kiro y otros. Si más de un agente trabaja en el repositorio, escribe AGENTS.md y añádelo a context.fileName en .gemini/settings.json.
¿Tengo que alojar la app en Firebase?
No. WebViewGold carga cualquier URL HTTPS, así que Vercel, Netlify, Cloud Run o tu propio servidor funcionan igual. Firebase Hosting simplemente es cómodo cuando tu app ya usa Firebase Auth y Firestore.
¿Puede Gemini CLI editar Config.swift y Config.java?
Sí. Añade la carpeta de WebViewGold con /directory add, pídele que lea primero los archivos de configuración y que solo cambie valores. La firma, los keystores y los bundle identifiers déjalos para ti en Xcode y Android Studio.
¿Rechazará Apple una app porque la escribió un agente de IA?
No. La revisión se fija en el comportamiento, la completitud, la privacidad y los pagos. Qué herramienta escribió el código no se ve ni importa.
Tres formas de llevar tu app a las tiendas
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.
Hazlo tú mismo
$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.
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.
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.
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.