Saltar al contenido principal
Tutorial

Crea una app de iOS desde Windows con Capacitor y Capgo Build

Lanza un binario de iOS real desde Windows: envuelve tu web app con Capacitor y usa Capgo Build para compilar, firmar y enviar a TestFlight sin tener un Mac.

Crea una app de iOS desde Windows con Capacitor y Capgo Build Capgo ilustración de blog

Desarrollar una app de iOS tradicionalmente implica una sola cosa: necesitas Xcode, y Xcode requiere macOS. Esa limitación es molesta si todo tu equipo usa Windows o Linux, o si simplemente no quieres mantener una máquina de build con Mac.

La combinación de Capacitor (para generar el proyecto nativo de iOS) y Build de Capgo (para compilarlo y firmarlo en la nube) te permite realizar builds de iOS y envíos a TestFlight desde una estación de trabajo Windows.

Esta guía muestra un flujo de trabajo pragmático que funciona muy bien en equipos:

  • Desarrolla en Windows como un proyecto web normal.
  • Mantén ios/ en tu repo (para que el estado nativo sea reproducible).
  • Ejecuta cap sync localmente (para que tu web build se copie en el proyecto de iOS).
  • Inicia un build de iOS en la nube con Capgo Build.

Qué construyes realmente y dónde

Hay dos tipos de "builds" distintos en una app de Capacitor:

  • Build web (tu JS/HTML/CSS): esto lo haces localmente en Windows.
  • Native Build (archivo de Xcode, firma, subida): Capgo Build lo hace en hardware Mac en la nube.

Esta separación es la clave: Capgo Build compila el proyecto nativo, pero espera que tus web assets ya estén sincronizados en ios/.

Requisitos

  • Una app Capacitor funcional (cualquier framework sirve).
  • Una cuenta de Apple Developer.
  • Acceso a App Store Connect para la app que quieras subir (para TestFlight o envío a App Store).
  • Tu cuenta de Capgo y el token API (CAPGO_TOKEN).

1) Crea o prepara tu app Capacitor (Windows)

Si ya tienes una web app, salta directamente a los pasos de Capacitor.

Ejemplo con Vite:

bun create vite@latest my-app
cd my-app
bun install

El build debe generar assets estáticos (en Vite esto es dist/ por defecto):

bun run build

2) Añade Capacitor y la plataforma iOS

Instala Capacitor:

bun add @capacitor/core @capacitor/ios
bun add -d @capacitor/cli

Inicializa y crea la carpeta de la plataforma iOS:

bunx cap init
bunx cap add ios

En este punto tendrás un ios/ directorio. Haz commit en git. Capgo Build compila lo que hay dentro ios/, así que necesitas que sea versionado y reproducible.

3) Sincroniza siempre los assets web en iOS antes de compilar

Cada vez que cambies tu web app, sigue esta secuencia en Windows:

bun run build
bunx cap sync ios

cap sync es lo que copia tus assets web compilados al proyecto nativo de iOS (los archivos que Capgo Build compilará realmente).

4) Instala y autentica el Capgo CLI

Capgo Build se activa mediante el Capgo CLI. Con bun, usa bunx:

bunx @capgo/cli@latest login

O configura tu token mediante una variable de entorno en tu shell/CI:

export CAPGO_TOKEN="your_api_key_here"

5) Configura el signing de iOS para Cloud Builds

Para compilar iOS necesitas los materiales de signing:

  • Certificado de Apple Distribution (.p12) y su contraseña
  • Perfil de aprovisionamiento (.mobileprovision)
  • Clave API de App Store Connect (AuthKey_XXXXXX.p8) y metadatos (Key ID, Issuer ID, Team ID)

Si aún necesitas generar estos archivos, sigue la documentación de Capgo:

El camino más fácil es: créalos/expórtalos una vez (usando cualquier Mac, un compañero o un alquiler temporal) y luego reutilízalos desde Windows para cada build.

Una vez que tengas los archivos localmente, guárdalos para Capgo Build:

bunx @capgo/cli@latest build credentials save \
  --platform ios \
  --certificate ./cert.p12 \
  --p12-password "password" \
  --provisioning-profile ./profile.mobileprovision \
  --apple-key ./AuthKey.p8 \
  --apple-key-id "KEY123" \
  --apple-issuer-id "issuer-uuid" \
  --apple-team-id "team-id"

Tip: en CI, guarda los archivos de credenciales en base64 como secrets, decodifícalos en runtime y luego ejecuta lo mismo build credentials save comando.

6) Ejecutar un iOS Build desde Windows

Desde la carpeta de tu app:

bun run build
bunx cap sync ios
bunx @capgo/cli@latest build com.example.app --platform ios --build-mode release

Verás los logs en tiempo real en tu terminal. Si tu clave de App Store Connect está configurada, Capgo Build puede subir el build resultante a TestFlight automáticamente.

7) Itera rápido: Live Updates para cambios solo en la web

Capgo Build es para cambios nativos:

  • añadir/eliminar plugins de Capacitor
  • cambiar permisos nativos
  • cambiar iconos/splash
  • actualizar Capacitor
  • cualquier cambio en Swift/Objective-C

Para ajustes de UI y fixes de JavaScript diarios, normalmente querrás Live Updates (OTA), para no tener que reconstruir el binario nativo cada vez.

Un buen flujo de trabajo de equipo es:

  • Usa Live Update para cambios web frecuentes.
  • Usa Capgo Build ocasionalmente si necesitas cambios nativos.

Errores comunes en Windows (y sus soluciones)

  • Olvidar cap sync: si los cambios de tu UI no aparecen en el build de iOS, es probable que hayas hecho el build de la web app pero no la hayas sincronizado en ios/.
  • No hacer commit ios/: Capgo Build compila el proyecto nativo. Si la carpeta no está en git (o no está en tu contexto de build), el build no podrá reproducir tu app.
  • Cambios en plugins sin rebuild nativo: añadir un plugin es un cambio nativo; planifica una ejecución de Capgo Build (y el envío a la tienda) después.

Resumen

No puedes ejecutar Xcode en Windows, pero puedes lanzar apps de iOS desde Windows:

  1. Envuelve tu web app con Capacitor (ios/ en tu repo).
  2. Genera los assets web localmente, luego cap sync.
  3. Usa Capgo Build para compilar, firmar y enviar tu binario de iOS desde el CLI.

Continúa con Build an iOS App from Windows with Capacitor and Capgo Build

Si estás usando Crea una app de iOS desde Windows con Capacitor y Capgo Build para planificar la automatización de CI/CD, conéctalo con CI/CD de Capgo para el flujo de trabajo del producto en Capgo CI/CD, Native Builds de Capgo para el flujo de trabajo del producto en Capgo Native Builds, Integraciones de Capgo para el flujo de trabajo del producto en Capgo Integraciones, Integración CI/CD para los detalles de implementación de CI/CD Integration, y Integración con GitHub Actions para los detalles de implementación de GitHub Actions Integration.

Live updates para apps Capacitor

Cuando un bug de la capa web está en producción, publica el fix a través de Capgo en lugar de esperar días a la aprobación de la app store. Los usuarios reciben la actualización en segundo plano mientras los cambios nativos siguen el flujo de revisión habitual.

Lo último de nuestro blog

Capgo te da la información clave que necesitas para crear una app móvil realmente profesional.