Carthage para Swift: guía completa con ejemplos prácticos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

📦 Carthage para Swift: gestor de dependencias descentralizado

Carthage es un gestor de dependencias descentralizado para el ecosistema Apple (iOS, macOS, tvOS, watchOS). A diferencia de CocoaPods, Carthage no modifica el proyecto automáticamente: compila los frameworks y tú los vinculas manualmente a Xcode. Esto te da control total sobre el proceso de compilación y mínima «magia».

La herramienta utiliza Carthage (el nombre coincide con el gestor) y funciona a través de un Cartfile, un archivo declarativo donde se listan las dependencias. Carthage clona los repositorios, los compila (usando xcodebuild) y coloca los .framework resultantes en la carpeta Carthage/Build. Luego, tú los agregas manualmente a tu proyecto.

¿Para qué sirve Carthage? Si valoras la transparencia, quieres evitar conflictos de versiones y no te gusta que las herramientas modifiquen tu proyecto automáticamente. Es ideal para equipos donde cada desarrollador decide cómo vincular dependencias y para proyectos con requisitos estrictos de seguridad en la compilación.


1. Instalación de Carthage

Carthage se puede instalar mediante Homebrew (recomendado) o descargando el .pkg desde GitHub.

Comando exacto de instalación (macOS):
# Instalación con Homebrew
brew install carthage

# Verificar la versión
carthage version

Si no tienes Homebrew instalado, primero instálalo: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

En Linux o Windows, Carthage no tiene soporte oficial (solo macOS).


2. Inicio rápido — ejemplo mínimo funcional

Crea un nuevo proyecto en Xcode (por ejemplo, Single View App). Luego, en la raíz del proyecto, crea un archivo llamado Cartfile (sin extensión) y agrega una dependencia:

# Cartfile
github "Alamofire/Alamofire" ~> 5.8

Ahora ejecuta el siguiente comando en la terminal (desde la carpeta del proyecto):

carthage update --platform iOS

Al finalizar, en la carpeta Carthage/Build/iOS aparecerá Alamofire.framework. Abre Xcode, arrastra ese .framework a la sección Frameworks, Libraries, and Embedded Content de tu target. Selecciona «Embed & Sign».

Ahora puedes importar la librería:

import Alamofire

// Petición mínima
AF.request("https://api.github.com/users/defunkt").response { response in
    debugPrint(response)
}

¡Listo! Acabas de vincular una dependencia usando Carthage.


3. Métodos y funciones principales de Carthage

A continuación, los comandos y funcionalidades clave de Carthage. La mayoría se ejecutan desde la terminal.

🔹 1. carthage update

Firma carthage update [--platform PLATFORM] [--configuration CONFIG] [--no-build] [--use-xcframeworks]

Qué hace: Descarga y compila todas las dependencias del archivo Cartfile.resolved (o las actualiza a las últimas versiones si Cartfile.resolved no existe). Crea la carpeta Carthage/Build.

# Actualizar solo para iOS, usando xcframeworks
carthage update --platform iOS --use-xcframeworks

🔹 2. carthage bootstrap

Firma carthage bootstrap [--platform PLATFORM] [--configuration CONFIG] [--use-xcframeworks]

Qué hace: Compila las dependencias usando el Cartfile.resolved existente (sin actualizar versiones). Ideal para CI/CD, ya que garantiza compilaciones reproducibles.

# Recompilar todo según Cartfile.resolved
carthage bootstrap --platform macOS

Recommendations