Pilot (Fastlane) es una herramienta para gestionar builds de aplicaciones iOS en TestFlight: carga de archivos binarios, gestión de grupos de testers y seguimiento de estados de builds. A diferencia de la carga manual a través de App Store Connect, Pilot automatiza todas las operaciones con la API de TestFlight. Según la documentación oficial de Fastlane (2026), Pilot permite a los equipos reducir el tiempo de publicación de una versión beta de 10 minutos a solo unos segundos.
Puntos clave
Pilot (Fastlane) es un componente del ecosistema Fastlane para automatizar el trabajo con TestFlight — la plataforma de Apple para pruebas beta de aplicaciones móviles. Pilot se encarga de todas las operaciones rutinarias: carga de builds, adición de testers, gestión de grupos y seguimiento del estado de los builds.
Sin Pilot, el proceso de distribución beta se ve así: el desarrollador abre manualmente App Store Connect, selecciona la aplicación, carga el IPA a través de Xcode Organizer, configura un grupo de testers y envía invitaciones. TestFlight es el servicio de Apple para distribuir versiones beta de aplicaciones a testers antes del lanzamiento oficial en la App Store.
Según App Store Connect Help (2025), los testers externos deben pasar por el proceso Beta App Review antes de la primera instalación del build — esto toma de 1 a 48 horas. Pilot realiza automáticamente el seguimiento del estado de la revisión y notifica al equipo cuando el build está listo para su distribución a grupos de testers externos.
Usa Pilot en cualquier proyecto que requiera la entrega regular de builds beta a testers — es una herramienta estándar para pipelines CI/CD de iOS, que garantiza un proceso de entrega predecible.
La funcionalidad de Pilot cubre todo el ciclo de vida de la gestión de builds beta: desde la carga de un archivo binario hasta la notificación a los testers sobre una nueva versión. Cada función se implementa como un comando separado con comportamiento predecible y registro detallado de cada paso.
El comando fastlane pilot upload carga el archivo IPA en App Store Connect y crea un nuevo build en TestFlight. Pilot verifica automáticamente la validez del archivo binario, la conformidad de la versión y el identificador de la aplicación. App Store Connect es la plataforma de Apple para gestionar aplicaciones, incluyendo la carga de builds, metadatos, análisis e informes de ventas.
Después de la carga, Pilot espera que Apple procese el archivo binario — el proceso toma de 5 a 30 minutos dependiendo del tamaño del build. Mientras espera, Pilot muestra una barra de progreso con información sobre el estado actual del procesamiento: Processing, Validating o Ready. Tras el procesamiento exitoso, el build está disponible para asignarse a grupos de testers.
Pilot admite la gestión tanto de grupos de testers internos como externos. Los testers internos son miembros de tu equipo de Apple Developer que obtienen acceso a los builds al instante, sin pasar por Beta App Review. Los testers externos son usuarios invitados por correo electrónico, que requieren aprobación de la revisión antes de la primera instalación.
El comando fastlane pilot add añade nuevos testers a un grupo por correo electrónico o Apple ID. Pilot envía automáticamente las invitaciones y comprueba si el tester ha aceptado la invitación. Para la adición masiva, puedes pasar una lista de correos electrónicos desde un archivo usando el parámetro --testers_file_path, lo cual es conveniente al formar inicialmente un grupo de testers de cientos de participantes.
# Subir un nuevo build a TestFlight
fastlane pilot upload --ipa "build/MyApp.ipa"
# Añadir un tester a un grupo
fastlane pilot add --email "tester@company.com" \
--groups "QA Team"
La configuración de Pilot no requiere un archivo de configuración separado — los ajustes se pasan a través de Appfile (el archivo común de Fastlane) o argumentos de línea de comandos. Los parámetros principales incluyen el apple_id de la aplicación, app_identifier, team_id y las credenciales para acceder a la API de App Store Connect.
Para la autenticación, Pilot utiliza la clave de API de App Store Connect (método recomendado) o la autenticación de dos factores de Apple ID. App Store Connect API Key es una clave de acceso que se genera en App Store Connect y permite interactuar con la API sin introducir contraseña y código de confirmación de forma interactiva.
# Appfile — configuración común de Fastlane
app_identifier("com.company.app")
apple_id("developer@company.com")
team_id("TEAM123456")
# Variables de entorno para Pilot
# APP_STORE_CONNECT_API_KEY_PATH=/path/to/key.p8
El parámetro app_identifier define el Bundle Identifier de la aplicación, que debe coincidir con el identificador especificado en el proyecto de Xcode y en App Store Connect. El parámetro apple_id se utiliza para la autenticación en el esquema de dos factores, y team_id — para seleccionar el equipo de desarrollo si la cuenta está vinculada a varios equipos de Apple Developer.
Para que Pilot funcione, es necesario configurar la clave de API de App Store Connect en el entorno CI/CD. La clave se genera en App Store Connect → Users and Access → Keys → Generate API Key. Guarda el archivo .p8 en los secretos del sistema CI y especifica la ruta a través de la variable de entorno APP_STORE_CONNECT_API_KEY_PATH o el parámetro --api_key_path en los comandos de Pilot.
El conjunto de comandos de Pilot cubre todos los escenarios de TestFlight: carga de builds, gestión de testers, visualización de estados y seguimiento de metadatos. Cada comando devuelve una salida JSON estructurada para su posterior procesamiento en scripts CI/CD.
El comando fastlane pilot builds muestra una lista de todos los builds de la aplicación con la versión, el estado de procesamiento y la fecha de carga. El estado del build puede ser uno de: Processing — Apple está procesando el archivo binario, Ready — el build está disponible para su distribución, Rejected — el build fue rechazado debido a errores de validación.
# Ver la lista de todos los builds en TestFlight
fastlane pilot builds
# Asignar un build a un grupo de testers
fastlane pilot distribute --build_number 42 \
--groups "QA Team" --notify
# Ver información sobre un build específico
fastlane pilot build_info --build_number 42
El comando fastlane pilot distribute asigna el build a grupos de testers especificados y envía notificaciones. El parámetro --notify activa el envío de notificaciones por correo electrónico a los testers sobre un nuevo build disponible — esto es fundamental para involucrar a los testers beta en el proceso de prueba y acelerar la retroalimentación.
Para gestionar los metadatos del build, se utiliza el parámetro --changelog, que establece el texto de descripción de los cambios en la nueva versión. Este texto se muestra a los testers en la invitación de prueba en la aplicación TestFlight. Se recomienda especificar los cambios clave, los errores corregidos y las nuevas funciones en cada build.
| Comando Pilot | Propósito | Parámetros clave |
|---|---|---|
| pilot upload | Cargar IPA en TestFlight | --ipa, --skip_waiting |
| pilot distribute | Asignar build a grupos | --build_number, --groups |
| pilot add | Añadir testers | --email, --groups |
| pilot builds | Listar todos los builds | --app_identifier |
| pilot build_info | Información del build | --build_number |
Pilot en CI/CD es la etapa final del pipeline de entrega de aplicaciones iOS. Después de que Gym ha creado el IPA y las pruebas se han superado, Pilot carga el build en TestFlight y lo distribuye a los grupos de testers. Esto permite a los equipos de QA obtener la nueva versión de la aplicación en cuestión de minutos después de un commit en el repositorio.
Un pipeline típico de CI/CD para iOS incluye la secuencia: Match (certificados), Gym (compilación IPA), Pilot (carga en TestFlight y distribución). Cada etapa depende de la anterior, lo que garantiza que solo se entreguen builds válidos y firmados a los testers.
# Pipeline completo en Fastfile
lane :beta do
match(type: :appstore)
gym(scheme: "MyApp", export_method: "app-store")
pilot("build/MyApp.ipa", groups: ["QA", "PM"])
end
El parámetro skip_waiting en el comando upload permite no esperar la finalización del procesamiento del archivo binario por parte de Apple dentro de una tarea CI — Pilot envía la solicitud de carga, recibe el identificador del build y finaliza. Esto acelera el pipeline, ya que el procesamiento puede tardar hasta 30 minutos, que no se gastan esperando en el runner de CI.
Para que Pilot funcione correctamente en CI, es necesario configurar la clave de API de App Store Connect. Guarda el archivo de clave .p8 en el almacenamiento seguro del sistema CI y pasa la ruta a través de la variable de entorno APP_STORE_CONNECT_API_KEY_PATH. Pilot utiliza esta clave para autenticarse en la API sin autenticación de dos factores, lo cual es fundamental para escenarios automatizados.
Al usar Pilot, los desarrolladores se encuentran con mayor frecuencia con errores de autenticación, configuración incorrecta de la aplicación y problemas con el procesamiento de archivos binarios por parte de Apple. El diagnóstico de problemas de Pilot comienza con la verificación del estado del build en App Store Connect mediante el comando pilot builds.
El error “Your app is not available for testing in TestFlight” ocurre cuando la aplicación no está configurada para pruebas en App Store Connect. Solución: abre la sección TestFlight en App Store Connect, activa las pruebas para la aplicación y asegúrate de que Export Compliance esté completado correctamente para tu tipo de cifrado.
El error “Missing iOS Distribution signing identity” indica la ausencia de un certificado de Distribution en el Llavero. Solución: ejecuta Match para descargar el certificado correcto antes de llamar a Pilot. Un certificado de Distribution difiere del de Development — se utiliza para firmar builds destinados a su distribución a través de TestFlight o la App Store.
Con el error “Invalid Provisioning Profile”, el build contiene un perfil incorrecto para el método de exportación seleccionado. Solución: comprueba que Gym utilice el export_method correcto que coincida con el tipo de perfil en Match. Si el build se compiló con un perfil de development, Pilot no podrá cargarlo en TestFlight — se requiere un perfil app-store o ad-hoc.
Preguntas frecuentes
Pilot admite dos tipos: testers internos (Internal Testers) — miembros del equipo Apple Developer que obtienen acceso al instante, y testers externos (External Testers) — usuarios invitados por correo electrónico que necesitan pasar por Beta App Review antes de la instalación.
TestFlight requiere un número de build único para cada carga. Pilot verifica automáticamente los duplicados y rechaza la carga de un build con un número que ya existe en App Store Connect. Para una nueva carga, incrementa el build number en el proyecto de Xcode antes de compilar.
No, Pilot es un componente de Fastlane y no se instala por separado. Sin embargo, puedes llamar solo a Pilot sin otras herramientas de Fastlane. Para ello, instala Fastlane mediante gem install fastlane y utiliza solo los comandos pilot, ignorando match y gym.
Usa el comando fastlane pilot reject con el número de build especificado. Pilot deshabilita el acceso de los testers al build especificado, pero no lo elimina de App Store Connect. El build rechazado permanece en el historial de TestFlight con estado Rejected para la auditoría de lanzamientos.
Usa el parámetro --notify en el comando pilot distribute. Pilot envía notificaciones por correo electrónico a todos los testers de los grupos especificados con un enlace para instalar la nueva versión a través de TestFlight. Sin esta bandera, los testers verán el nuevo build solo al abrir la aplicación TestFlight.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también