📦 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.
# 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 También en la biblioteca
XCTest — Pruebas en Swift (iOS/macOS)
Monitoreo de aplicaciones PHP con las bibliotecas php-ast y xhprof
Trabajo con Excel en JavaScript (Node.js): bibliotecas y herramientas
Generación de informes PDF en Kotlin: iText, Apache PDFBox, OpenPDF
Monitoreo de aplicaciones TypeScript: bibliotecas, herramientas y configuración