⚠️ Configura las Credenciales iOS Primero
Requerido: Debes guardar tus credenciales iOS antes de compilar.
Compila y envía aplicaciones iOS a TestFlight y App Store usando la infraestructura Mac dedicada de Capgo.
⚠️ Configura las Credenciales iOS Primero
Requerido: Debes guardar tus credenciales iOS antes de compilar.
Las compilaciones iOS se ejecutan en máquinas Mac dedicadas (Scaleway Mac minis M4) aprovisionadas bajo demanda:
Antes de compilar para iOS, necesitas:
npx cap open iosNecesitarás uno de estos tipos de certificados dependiendo de tu compilación:
| Tipo de Compilación | Certificado Requerido | Perfil de Aprovisionamiento |
|---|---|---|
| Development | Apple Development | Perfil de Desarrollo |
| Ad Hoc | Apple Distribution | Perfil Ad Hoc |
| App Store | Apple Distribution | Perfil App Store |
Resumen Rápido:
Crear una Solicitud de Firma de Certificado (CSR)
.certSigningRequestGenerar Certificado en el Portal de Desarrollador de Apple
.cer)Exportar Certificado como .p12
.cer descargado para agregarlo a Llaveros.p12 y establece una contraseña (¡guarda esta contraseña!)Crear Perfil de Aprovisionamiento
.mobileprovisionPara envío automático a TestFlight, crea una clave API:
.p8 (¡solo puedes descargarlo una vez!)Configura estas credenciales antes de compilar:
# Firma iOS (Requerido)BUILD_CERTIFICATE_BASE64="<certificado-p12-codificado-en-base64>"BUILD_PROVISION_PROFILE_BASE64="<mobileprovision-codificado-en-base64>"P12_PASSWORD="<contraseña-de-certificado>"
# API de App Store Connect (para envío)APPLE_KEY_ID="ABC1234567"APPLE_ISSUER_ID="00000000-0000-0000-0000-000000000000"APPLE_KEY_CONTENT="<clave-p8-codificada-en-base64>"
# Configuración AdicionalAPP_STORE_CONNECT_TEAM_ID="1234567890"APPLE_PROFILE_NAME="App Store com.example.app"Certificado (.p12):
base64 -i TuCertificado.p12 | pbcopyPerfil de Aprovisionamiento (.mobileprovision):
base64 -i TuPerfil.mobileprovision | pbcopyClave de App Store Connect (.p8):
base64 -i AuthKey_ABC1234567.p8 | pbcopyLa cadena base64 ahora está en tu portapapeles - pégala en tu variable de entorno o secretos de CI/CD.
npx @capgo/cli@latest build com.example.app \ --platform ios \ --build-mode debugEsto crea una compilación de desarrollo que se puede instalar en dispositivos registrados.
npx @capgo/cli@latest build com.example.app \ --platform ios \ --build-mode releaseEsto crea una compilación de App Store y automáticamente la envía a TestFlight si tienes configuradas las credenciales de la API de App Store Connect.
name: Build iOS App
on: push: branches: [main]
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6
- name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24'
- name: Install dependencies run: npm ci
- name: Build web assets run: npm run build
- name: Sync Capacitor run: npx cap sync ios
- name: Build iOS app env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} BUILD_CERTIFICATE_BASE64: ${{ secrets.IOS_CERTIFICATE }} BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.IOS_PROVISION_PROFILE }} P12_PASSWORD: ${{ secrets.P12_PASSWORD }} APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }} APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }} APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }} APP_STORE_CONNECT_TEAM_ID: ${{ secrets.TEAM_ID }} run: | npx @capgo/cli@latest build ${{ secrets.APP_ID }} \ --platform ios \ --build-mode releaseAprovisionamiento de Máquina (1-2 minutos)
Aislamiento de Usuario (~10 segundos)
job-<jobId>/Users/job-<jobId>Configuración de Proyecto (~30 segundos)
Compilación Fastlane (3-8 minutos)
Envío a App Store (1-2 minutos, si está configurado)
Limpieza (inmediata)
Liberación de Máquina (después de 24 horas)
Nuestro entorno de compilación iOS incluye:
Tiempos típicos de compilación iOS:
| Tipo de Compilación | Primera Compilación | Compilaciones Subsecuentes* |
|---|---|---|
| Debug | 5-7 minutos | 4-6 minutos |
| Release | 7-10 minutos | 5-8 minutos |
*Las compilaciones subsecuentes pueden ser más rápidas si se reutiliza la misma máquina dentro de la ventana de 24 horas.
“Firma de código falló”
“El perfil de aprovisionamiento no incluye el certificado de firma”
“Autenticación de App Store Connect falló”
“Tiempo de espera de compilación agotado después de 10 minutos”
Todos los registros de compilación se transmiten en tiempo real. Busca estas fases clave:
✔ Máquina asignada: m-abc123→ Creando usuario: job-abc123→ Instalando dependencias CocoaPods...→ Compilando aplicación iOS...→ Firmando código con certificado...→ Subiendo a App Store Connect...✔ Compilación exitosaSi una compilación falla, el error se mostrará claramente en los registros con el mensaje de error específico de Fastlane/Xcode.
Siempre asegúrate de que tu compilación iOS funcione localmente antes de usar la compilación en la nube:
npx cap open ios# Compilar en XcodeNunca confirmes certificados o claves en tu repositorio. Siempre usa:
Para compilaciones más rápidas, asegúrate de que tu package.json y Podfile.lock estén confirmados en control de versiones.
Mantén un ojo en la duración de la compilación para optimizar costos:
# El CLI muestra el tiempo de compilación al finalCompilación exitosa en 6m 42s (13.4 minutos de facturación a tarifa 2×)