Match (Fastlane): qué es, gestión de certificados y configuración en desarrollo

Autor: IT Sectr Publicado: 2026-04-14 Tiempo de lectura: 10 min

Match (Fastlane) es una herramienta para gestionar certificados Code Signing y perfiles de aprovisionamiento (Provisioning Profiles) de iOS, que los almacena en un repositorio Git cifrado. A diferencia de la gestión manual a través de Apple Developer Portal, Match automatiza la sincronización de firmas entre todos los desarrolladores y sistemas CI/CD. Según la documentación oficial de Fastlane (2026), Match elimina hasta el 90% de los errores relacionados con certificados incorrectos al compilar aplicaciones iOS.

Puntos clave

  • Match es una utilidad de Fastlane para el almacenamiento centralizado y la sincronización de certificados iOS y perfiles de aprovisionamiento a través de un repositorio Git cifrado.
  • Todos los certificados se cifran con OpenSSL antes de guardarse en el repositorio, lo que garantiza la seguridad de las claves incluso con acceso público al repositorio.
  • Match admite varios tipos de perfiles: development, appstore, adhoc y enterprise — para diferentes escenarios de compilación y distribución.
  • La integración con CI/CD permite a los equipos obtener automáticamente certificados actualizados sin exportación manual desde Apple Developer Portal en cada máquina.
  • El indicador --readonly evita la modificación accidental de certificados en el entorno CI y garantiza la estabilidad del pipeline de compilación automatizada.

¿Qué es Match (Fastlane)?

Match (Fastlane) es un componente del ecosistema Fastlane diseñado para la gestión centralizada de certificados Code Signing y perfiles de aprovisionamiento para el desarrollo iOS. Resuelve el problema de sincronización de firmas entre los miembros del equipo y automatiza la configuración de certificados en pipelines CI/CD sin intervención del desarrollador.

Sin Match, cada miembro del equipo genera manualmente certificados a través de Xcode o Apple Developer Portal, lo que provoca conflictos de compilación en diferentes máquinas. Code Signing es el proceso de firma digital de una aplicación iOS, que confirma su autoría e integridad antes de instalarla en el dispositivo de un usuario.

Según la Documentación para desarrolladores de Apple (2025), la configuración incorrecta de certificados es una de las causas más comunes de rechazo al enviar una aplicación a App Store. Match verifica automáticamente la validez de los certificados y advierte sobre los que están por vencer, lo que reduce el riesgo de rechazo de compilación durante la etapa de verificación de Apple.

Use Match en cualquier proyecto con dos o más desarrolladores o cuando tenga un pipeline CI/CD — reduce el tiempo de configuración del entorno de un nuevo miembro del equipo de 30 minutos a un solo comando en la terminal.

Cómo funciona Match: almacenamiento Git cifrado

Arquitectura de Match se basa en el concepto de una fuente única de verdad para todos los certificados del equipo iOS. En lugar del almacenamiento local en el llavero de cada desarrollador, Match consolida los certificados en un único repositorio Git con cifrado de cada archivo antes de guardarlo.

El proceso consta de tres etapas. En la etapa de inicialización, Match genera todos los certificados y perfiles necesarios a través de la API de Apple Developer Portal. Cada archivo se cifra con el algoritmo AES-256 con una clave formada a partir de una frase de contraseña definida por el usuario. Los archivos cifrados se guardan en el repositorio Git y se sincronizan con el servidor remoto mediante operaciones estándar Git push y pull.

Arquitectura de cifrado de certificados

Match utiliza una combinación de OpenSSL y una frase de contraseña definida por el usuario para cifrar certificados y perfiles. La clave de acceso se establece a través de la variable de entorno MATCH_PASSWORD y no se almacena en el repositorio, lo que evita fugas incluso si el servidor Git se ve comprometido o el repositorio es de acceso público.

Al solicitar un certificado, Match descarga el archivo cifrado del repositorio, lo descifra localmente con la frase de contraseña y lo instala en el llavero de la máquina actual. Una vez completada la compilación, los certificados se pueden eliminar del llavero para cumplir con las políticas de seguridad de entornos corporativos — esto evita el uso de certificados obsoletos en compilaciones posteriores.

Cada certificado se guarda con un nombre que contiene el identificador de la aplicación, el tipo de perfil y la fecha de creación. Esta estructura permite a Match gestionar versiones de certificados y, si es necesario, revertir los cambios a un estado anterior mediante comandos estándar Git revert y reset. Esto es especialmente útil cuando un perfil se elimina o sobrescribe accidentalmente.

Configuración de Match

Match se instala junto con Fastlane a través del gestor de paquetes Ruby: gem install fastlane. Después de la instalación, inicialice el almacén de certificados con el comando fastlane match init, que crea un repositorio Git vacío y genera un archivo Matchfile con una plantilla de configuración básica.

bash
# Inicializar repositorio de Match
fastlane match init

Configuración mediante Matchfile

El archivo Matchfile contiene todos los parámetros de conexión al almacén de certificados: URL del repositorio Git, tipo de perfil predeterminado, identificadores de aplicación y credenciales de Apple Developer. Ejemplo de una configuración típica para un equipo de cinco desarrolladores:

ruby
# Configuración de Matchfile
git_url("https://github.com/company/certificates.git")
type(:development)
app_identifier(["com.company.app", "com.company.app.extension"])
username("developer@company.com")
team_id("TEAM123456")
git_branch("main")

El parámetro type define el tipo de perfil: :development para depuración en dispositivos de desarrolladores, :appstore para publicación en App Store, :adhoc para pruebas en dispositivos externos y :enterprise para distribución corporativa In-House fuera de App Store. Cada tipo crea un directorio separado en el repositorio, lo que permite organizar los perfiles según los escenarios de compilación objetivo.

Match admite varios métodos de autenticación para Apple Developer Portal: autenticación de dos factores mediante Apple ID, contraseña específica de aplicación (App-Specific Password) y claves API de App Store Connect. Para CI/CD se recomiendan las claves API — no requieren ingreso interactivo de código de confirmación y no bloquean las compilaciones automatizadas cuando cambia el dispositivo del desarrollador.

Generación y sincronización de perfiles

Después de configurar Matchfile, ejecute el comando fastlane match development o fastlane match appstore para generar y sincronizar perfiles. Match crea o actualiza automáticamente los certificados a través de la API de Apple Developer Portal y los guarda en el repositorio. Apple Developer Portal es la interfaz web de Apple para gestionar certificados, identificadores de aplicación y listas de dispositivos de desarrolladores aprobados.

En la primera ejecución, Match solicitará una frase de contraseña para cifrar el repositorio. Esta frase debe almacenarse en el gestor de secretos de CI/CD (GitHub Actions Secrets, GitLab CI Variables o Jenkins Credentials) y transmitirse a través de la variable de entorno MATCH_PASSWORD. Sin ella, Match no podrá descifrar los certificados en otras máquinas o en el entorno CI.

Comandos básicos de Match para gestionar certificados

Interfaz de Match consta de un conjunto de comandos para crear, actualizar, sincronizar y eliminar certificados y perfiles. Cada comando corresponde a una acción específica en el ciclo de vida de Code Signing: desde la generación hasta la limpieza completa del repositorio.

Comandos para el trabajo diario

El comando fastlane match development descarga o crea certificados y perfiles de desarrollo para depuración en dispositivos locales. Provisioning Profile es un documento digital de Apple que vincula un certificado de desarrollador con un identificador de aplicación y una lista de dispositivos autorizados para la instalación.

Para publicar en App Store, use fastlane match appstore — genera certificados de distribución y perfiles de AppStore. El comando fastlane match adhoc crea perfiles para pruebas en dispositivos externos, y fastlane match enterprise para aplicaciones corporativas In-House.

bash
# Crear perfiles de Development para depuración
fastlane match development

# Crear perfiles de AppStore para lanzamiento
fastlane match appstore

# Importar certificados existentes creados manualmente
fastlane match import

El comando fastlane match import permite añadir certificados existentes al repositorio — útil al migrar de la gestión manual a Match. El parámetro --readonly bloquea cualquier cambio en el repositorio, lo que es crítico para entornos CI donde el pipeline no debe crear ni eliminar certificados y perfiles automáticamente.

Comando MatchPropósitoTipo de perfil
match developmentCrear perfiles de desarrollo para depuración en dispositivosDevelopment
match appstoreCrear perfiles para publicación en App StoreAppStore
match adhocPerfiles para pruebas externas en dispositivos de beta testersAdHoc
match enterprisePerfiles corporativos para distribución In-HouseEnterprise
match importImportar certificados creados previamente al repositorioCualquiera

Para una limpieza completa del repositorio, use el comando fastlane match nuke. Elimina todos los certificados del almacenamiento Git, de Apple Developer Portal y de la máquina local — un restablecimiento completo del estado de Code Signing para el proyecto. El comando se utiliza solo en conflictos críticos o al migrar a una nueva cuenta de Apple Developer.

Integración de Match en el pipeline CI/CD

Integración CI/CD de Match es una de las ventajas clave de la herramienta. En pipelines de GitHub Actions, GitLab CI, Bitrise o Jenkins, Match descarga e instala automáticamente los certificados correctos sin intervención del desarrollador. Esto permite la compilación y firma completamente automatizadas de aplicaciones iOS desde el commit hasta un IPA listo.

Una configuración típica de GitHub Actions incluye instalar Fastlane, configurar la variable MATCH_PASSWORD y ejecutar Match con el indicador --readonly. GitHub Actions es la plataforma CI/CD de GitHub que automatiza la compilación, prueba y publicación de código basándose en eventos del repositorio.

bash
# Instalar Fastlane en el entorno CI
gem install fastlane --no-document

# Ejecutar Match en modo solo lectura sin derechos de modificación
fastlane match development --readonly

Antes de ejecutar Match en CI, configure el acceso al repositorio de certificados. Fastlane lo clona automáticamente según el parámetro git_url de Matchfile. El acceso al repositorio se configura mediante una clave SSH o un token de acceso personal, que se añaden a los secretos del sistema CI — esto garantiza que los certificados no se vean comprometidos a través del acceso público.

Establezca las variables de entorno MATCH_PASSWORD y FASTLANE_APPLE_API_KEY en los secretos de su proveedor de CI. La clave API de App Store Connect permite a Match autenticarse en Apple Developer Portal sin autenticación de dos factores, lo que elimina las solicitudes interactivas en compilaciones automatizadas y evita el bloqueo del pipeline.

Errores comunes al trabajar con Match

Incluso con una configuración correcta de Match, pueden ocurrir errores relacionados con certificados caducados, conflictos de perfiles o configuración incorrecta del entorno. Diagnóstico de problemas de Match se basa en analizar los registros de comandos y verificar el estado del repositorio Git para determinar la relevancia de los certificados.

El error más común — «You need to provide a password for Match» — ocurre cuando la variable de entorno MATCH_PASSWORD no está configurada en la máquina o en el entorno CI. Solución: agregue MATCH_PASSWORD a las variables de entorno del sistema o pase la contraseña mediante el parámetro --keychain_password al ejecutar el comando Match.

El segundo problema más frecuente son los conflictos de certificados al agregar un nuevo dispositivo a un perfil AdHoc. Se resuelve con el comando fastlane match adhoc --force, que recrea los perfiles teniendo en cuenta los nuevos dispositivos. Los certificados Apple Developer tienen una validez de un año, después del cual las compilaciones que los utilizan son rechazadas por App Store Connect. Match advierte sobre la caducidad 30 días antes del final del período de validez.

Cuando aparece el error «Multiple matches found for...», existen varias versiones del mismo certificado en el repositorio. Use el comando fastlane match nuke para limpiar completamente el repositorio y eliminar todos los certificados de Apple Developer Portal. Después de la limpieza, realice una generación desde cero — esto garantiza un estado consistente de los perfiles sin duplicados ni versiones conflictivas.

Preguntas frecuentes

¿Cómo cifra Match los certificados en un repositorio Git?

Match utiliza OpenSSL con el algoritmo AES-256-CBC para cifrar cada archivo de certificado antes de guardarlo en Git. La clave de cifrado se forma a partir de la frase de contraseña MATCH_PASSWORD. Incluso con acceso público al repositorio, los certificados permanecen inaccesibles sin conocer la contraseña.

¿Se puede usar Match sin un repositorio Git?

No, Match requiere un repositorio Git para almacenar los certificados cifrados. Sin embargo, el repositorio puede ser local si no se requiere sincronización entre máquinas. En este caso, el parámetro git_url especifica una ruta local a un directorio en el sistema de archivos en lugar de la URL de un repositorio remoto.

¿Qué hacer cuando hay conflicto de versiones de certificados en el equipo?

Los conflictos ocurren cuando dos desarrolladores generan simultáneamente certificados diferentes. La solución es usar el comando fastlane match nuke para limpiar completamente todos los certificados del repositorio y de Apple Developer Portal. Después de la limpieza, un desarrollador realiza la generación desde cero y sincroniza mediante Git.

¿Cómo actualizar los certificados en Match después de que caduquen?

Match detecta automáticamente los certificados caducados al iniciar y ofrece reemplazarlos. Para una renovación forzada, ejecute fastlane match [type] --force — el comando recrea los certificados y perfiles del tipo especificado incluso si los existentes aún son válidos, lo que es útil al cambiar el equipo de desarrolladores.

¿En qué se diferencia Match de la gestión manual de certificados en Xcode?

La gestión manual requiere generar certificados a través de Xcode o Developer Portal para cada máquina por separado. Match centraliza el almacenamiento, cifra los datos, los sincroniza entre desarrolladores y CI/CD, y verifica automáticamente la validez y caducidad de todas las firmas sin intervención humana.

Resumen

  • Match es una herramienta de Fastlane para gestionar certificados Code Signing de iOS a través de un repositorio Git cifrado como fuente única de verdad.
  • El cifrado basado en AES-256 y OpenSSL protege los certificados incluso con acceso público al repositorio, y la frase de contraseña se establece mediante la variable MATCH_PASSWORD.
  • Match admite cuatro tipos de perfiles: development, appstore, adhoc y enterprise — cada uno para su propio escenario objetivo de distribución de aplicaciones.
  • La configuración se realiza mediante el archivo Matchfile, donde se especifican git_url, el tipo de perfil, los identificadores de aplicación y las credenciales de Apple Developer.
  • La integración con CI/CD mediante el indicador --readonly permite obtener certificados automáticamente en pipelines sin riesgo de modificación del repositorio ni conflictos.
  • Cuando surgen problemas, se utiliza el comando nuke para la limpieza completa del repositorio o --force para la renovación forzada de certificados y perfiles.

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.

Discutir el proyecto

Lea también