XCODE
Xcode Cloud · CI/CD iOS · Apple Developer · TestFlight

Xcode Cloud: el CI/CD de Apple bien configurado, también para Flutter.

Setup, optimización y migración de Xcode Cloud para equipos iOS y Flutter. Builds automáticos en Apple Silicon, certificados sin fricciones y distribución a TestFlight sin intervención manual.

  • Xcode Cloud con Flutter: los custom scripts que el equipo de Apple no documenta bien
  • Gestión automática de certificados y provisioning profiles — sin sorpresas en el pipeline
  • +100 apps iOS en producción desde 2011 — conocemos el ecosistema Apple en profundidad

0+

Apps iOS publicadas en App Store

0+

Años en el ecosistema Apple

0

Flutter en producción — antes del launch oficial

0º

Google Flutter Partner en España

Desafíos del sector

Los problemas de Xcode Cloud que entendemos mejor que nadie.

Cada sector tiene sus complejidades específicas. Aquí las que nos encontramos en Xcode Cloud y cómo las resolvemos.

⚙️

Setup inicial de Xcode Cloud para Flutter

"Llevamos 3 días intentando que Xcode Cloud compile nuestra app Flutter y sigue fallando en el paso de pods."

Script de post-clone que instala la versión correcta de Flutter, ejecuta pub get, regenera los pods con el entorno de Xcode Cloud y configura las variables de entorno necesarias. La primera compilación exitosa en Xcode Cloud para un proyecto Flutter nuevo tarda 2-4 horas con el setup correcto — no días.

🔑

Certificados y provisioning profiles caducados

"Cada vez que un certificado caduca, el pipeline se para y hay que ir a Apple Developer Center a regenerarlo manualmente."

Xcode Cloud gestiona automáticamente los certificados de distribución y provisioning profiles via App Store Connect API. Configurado correctamente, nunca más hay que tocar manualmente un certificado — Xcode Cloud los renueva cuando es necesario.

🐢

Builds lentos que bloquean al equipo

"El build de iOS tarda 45 minutos en GitHub Actions y el runner de macOS cuesta el doble que el de Linux."

Los runners de Xcode Cloud corren en Apple Silicon nativo — hasta 3x más rápidos que los macOS runners de GitHub Actions en Intel. Con caché de dependencias correctamente configurada (pods, pub cache) y builds incrementales, un pipeline Flutter completo tarda 12-18 minutos.

🧪

Tests de UI que no se ejecutan en CI

"Los XCUITests corren en local pero nunca los hemos configurado en CI porque es muy complejo."

Xcode Cloud ejecuta tests unitarios y de UI en paralelo en múltiples simuladores de iPhone y iPad con versiones distintas de iOS. La configuración en Xcode Cloud es más directa que en otras plataformas porque Xcode nativo es el orquestador. Los tests de XCUITest en simuladores M-series son también significativamente más rápidos.

📦

Distribución a TestFlight manual y propensa a errores

"Subir un build a TestFlight implica archive manual, exportar el IPA, abrirlo en Transporter y esperar el procesamiento de Apple."

Xcode Cloud distribuye automáticamente a TestFlight al finalizar el build, con gestión de grupos de testers por rama y notificaciones automáticas a los testers. El proceso de 45 minutos manual pasa a ser un paso de 0 minutos en el pipeline.

🔔

Sin notificaciones ni visibilidad del estado del pipeline

"El equipo no sabe si el build ha fallado hasta que alguien intenta descargar la beta de TestFlight."

Webhooks de Xcode Cloud a Slack con el resultado de cada workflow, enlace directo al log del error y resumen del test report. Para fallos críticos en la rama main, notificación inmediata al canal de engineering con contexto suficiente para actuar sin abrir Xcode Cloud.

Qué construimos

Apps que construimos para Xcode Cloud.

01

Setup · Flutter · iOS

Setup completo de Xcode Cloud para Flutter

Configuración de workflows desde cero: trigger por rama, script de instalación de Flutter, compilación, tests unitarios y distribución automática a TestFlight. Con gestión de entornos (dev/staging/prod) y variables de configuración por entorno.

02

Migración · CI/CD

Migración de Bitrise o GitHub Actions a Xcode Cloud

Análisis del pipeline actual, diseño de workflows equivalentes, migración de secretos y variables de entorno, y validación end-to-end. Sin cortar el pipeline de producción durante la migración.

03

Testing · XCUITest

Tests automatizados en múltiples dispositivos

Configuración de test plans con XCTest y XCUITest ejecutados en paralelo sobre matrices de simuladores (iPhone SE, iPhone 15, iPad Pro, distintas versiones de iOS). Con reporting en App Store Connect y notificaciones por fallo.

04

Swift · Nativo

Pipeline para proyectos Swift / SwiftUI nativo

CI/CD nativo para proyectos iOS en Swift sin la complejidad de Flutter. Integración con Swift Package Manager, gestión de targets múltiples (app principal, extensions, frameworks) y distribución a grupos de TestFlight por workflow.

05

Performance · FinOps

Optimización de build times y compute hours

Auditoría del pipeline actual: identificación de pasos lentos, configuración de caché de dependencias (pods, pub cache), paralelización de tests y ajuste de triggers para reducir builds innecesarios. El objetivo es reducir el gasto en compute hours sin sacrificar cobertura.

06

Integrations · Slack

Notificaciones, webhooks e integración con herramientas del equipo

Integración de Xcode Cloud con Slack (estado del build, fallos, nuevas betas), Jira (vinculación de builds a tickets), GitHub/GitLab (checks en PRs) y sistemas de monitoring externos para una visibilidad completa del pipeline desde las herramientas del equipo.

Clientes de Xcode Cloud con los que trabajamos

ISDIN

CI/CD iOS y Flutter · 8 mercados

Rastreator

Pipeline iOS · Millones de usuarios

Proyectos NDA

Xcode Cloud enterprise setup

      Guía

      Xcode Cloud para proyectos iOS y Flutter: guía de configuración, límites y comparativa con Bitrise y GitHub Actions

      Xcode Cloud es el servicio de CI/CD de Apple integrado en Xcode y App Store Connect, lanzado en 2022 y disponible para todos los miembros del Apple Developer Program. Su propuesta de valor es clara: integración nativa con el ecosistema Apple, gestión automática de certificados y provisioning profiles, distribución directa a TestFlight y builds en hardware Apple Silicon real. Para equipos que trabajan exclusivamente con proyectos iOS, iPadOS, macOS, tvOS o watchOS en Swift o Objective-C, Xcode Cloud es la opción más directa y con menor configuración inicial. Para proyectos Flutter — que son la mayoría de los que maneja Dribba — la historia es algo más compleja.

      Flutter produce un proyecto iOS que es técnicamente un proyecto Xcode, pero con una capa adicional de dependencias gestionadas por Dart y CocoaPods que Xcode Cloud no maneja automáticamente. El script de post-clone es la clave: antes de que Xcode Cloud intente compilar el proyecto, hay que instalar el SDK de Flutter en la versión correcta, ejecutar 'flutter pub get' para resolver las dependencias de Dart, y generar los pods de iOS con 'pod install'. Si alguno de estos pasos falla, el build falla con un error críptico que no menciona Flutter en ningún sitio. Con el script correcto — y con las variables de entorno del PATH bien configuradas — Xcode Cloud compila, testa y distribuye apps Flutter con la misma fiabilidad que un proyecto Swift nativo.

      La comparativa entre Xcode Cloud, GitHub Actions (runners de macOS) y Bitrise para proyectos iOS tiene una respuesta que depende del caso de uso. Xcode Cloud gana en integración nativa con Apple Developer y en velocidad de build gracias a los Apple Silicon runners, que son hasta 3x más rápidos que los Intel runners de GitHub Actions. Pero pierde en flexibilidad: no puede ejecutar pasos de Linux, tiene soporte limitado para herramientas de terceros y su modelo de pricing por compute hours puede ser menos predecible que el modelo de concurrentes de Bitrise para equipos con mucha actividad. Para proyectos puramente iOS con equipos que ya usan las herramientas de Apple, Xcode Cloud es la opción recomendada. Para proyectos Flutter que también tienen pipeline de Android, una solución híbrida (Xcode Cloud para iOS, GitHub Actions para Android) o una plataforma multiplataforma como Bitrise puede ser más eficiente.

      La optimización de build times en Xcode Cloud tiene tres palancas principales. Primera: caché de dependencias — la instalación de CocoaPods y el pub cache de Flutter consumen 3-5 minutos en cada build si no están cacheados. Xcode Cloud tiene caché persistente entre builds del mismo repositorio, pero hay que configurar explícitamente qué directorios cachear. Segunda: paralelización de tests — ejecutar los tests de UI en múltiples simuladores en paralelo en lugar de secuencialmente puede reducir el tiempo de la fase de testing a la mitad. Tercera: configuración inteligente de triggers — no todos los commits necesitan un build completo con tests de UI; definir workflows distintos para PRs (tests rápidos) y para merges a main (suite completa) reduce el consumo de compute hours sin sacrificar cobertura.

      Preguntas frecuentes

      Las preguntas que hacen los equipos de Xcode Cloud.

      Sí, aunque requiere configuración adicional. Flutter no es un proyecto Swift nativo, así que Xcode Cloud necesita un script de post-clone que instale Flutter, ejecute 'flutter pub get' y genere los pods de iOS. Con los custom scripts correctamente configurados, Xcode Cloud compila, testa y distribuye apps Flutter a TestFlight sin intervención manual.

      Apple ofrece 25 compute hours gratuitas al mes para cualquier cuenta de Apple Developer Program. Los planes de pago van desde 50 horas/mes (25$/mes) hasta ilimitado (299$/mes para Enterprise). Para proyectos con múltiples apps y pipelines activos, la tarificación por compute hour es predecible comparado con el modelo de concurrentes de otras plataformas.

      Xcode Cloud es la opción con mayor integración nativa con el ecosistema Apple: gestión automática de certificados y provisioning profiles, distribución directa a TestFlight, notificaciones en App Store Connect y builds en hardware Apple real (no en máquinas virtuales Linux). GitHub Actions y Bitrise ofrecen más flexibilidad y soporte multiplataforma, pero Xcode Cloud gana en simplicidad para proyectos puramente iOS/macOS.

      Sí. Esta es una de las ventajas más importantes de Xcode Cloud: gestiona automáticamente los certificados de distribución y los provisioning profiles via App Store Connect API. Elimina uno de los puntos de fricción más comunes en CI/CD para iOS — los certificados caducados o mal configurados que paran el pipeline.

      Sí. Xcode Cloud puede ejecutar tests unitarios y de UI en paralelo en múltiples dispositivos y versiones de iOS simultáneamente. Esto es especialmente potente para detectar regresiones en diferentes versiones de OS sin incrementar el tiempo total del pipeline.

      Un build estándar de una app Flutter (sin tests) tarda entre 10 y 20 minutos. Con tests unitarios y de UI en múltiples simuladores, entre 25 y 40 minutos. Los builds son en máquinas Apple Silicon, que son significativamente más rápidas que las máquinas Intel disponibles en GitHub Actions (macOS runners).

      Sí. Hacemos la migración completa: análisis del pipeline actual, diseño de los workflows equivalentes en Xcode Cloud, configuración de custom scripts para Flutter, migración de secretos y variables de entorno, y validación end-to-end antes de desactivar el pipeline anterior. El objetivo es cero disruption en el proceso de release durante la migración.

      También en Dribba

      Un pipeline de iOS que falla un viernes por un certificado caducado no es un problema técnico. Es un problema de proceso.

      Primera reunión gratuita. Te damos una valoración honesta de si somos el fit correcto para tu proyecto.

      Ver proyectos Xcode Cloud