📦 Carthage para Swift: gerenciador de dependências descentralizado
Carthage é um gerenciador de dependências descentralizado para o ecossistema Apple (iOS, macOS, tvOS, watchOS). Diferente do CocoaPods, o Carthage não modifica seu projeto automaticamente — ele compila os frameworks e você mesmo os adiciona ao Xcode. Isso oferece controle total sobre o processo de build e o mínimo de "mágica".
A biblioteca usa o Carthage (o nome coincide com a ferramenta) e funciona através do Cartfile — um arquivo declarativo onde você lista as dependências. O Carthage clona os repositórios, compila-os (usando xcodebuild) e coloca os .framework prontos na pasta Carthage/Build. Você os adiciona manualmente ao projeto.
Por que usar o Carthage? Se você valoriza transparência, quer evitar conflitos de versão e não gosta que ferramentas alterem seu projeto automaticamente. É ideal para equipes onde cada membro decide como conectar dependências e para projetos com requisitos rigorosos de segurança de build.
1. Instalação do Carthage
O Carthage pode ser instalado via Homebrew (recomendado) ou baixando o .pkg do GitHub.
# Instalação via Homebrew
brew install carthage
# Verificar versão
carthage version
Se o Homebrew não estiver instalado, instale-o primeiro: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Para Linux ou Windows, o Carthage não tem suporte oficial (apenas macOS).
2. Início rápido — exemplo funcional mínimo
Crie um novo projeto Xcode (ex: Single View App). Na raiz do projeto, crie um arquivo chamado Cartfile (sem extensão) e adicione uma dependência:
# Cartfile
github "Alamofire/Alamofire" ~> 5.8
Agora execute o comando no terminal (na pasta do projeto):
carthage update --platform iOS
Após a conclusão, na pasta Carthage/Build/iOS aparecerá o Alamofire.framework. Abra o Xcode, arraste este .framework para a seção Frameworks, Libraries, and Embedded Content do seu target. Selecione "Embed & Sign".
Agora você pode importar a biblioteca:
import Alamofire
// Requisição mínima
AF.request("https://api.github.com/users/defunkt").response { response in
debugPrint(response)
}
Pronto! Você acabou de conectar uma dependência usando o Carthage.
3. Principais métodos e funções do Carthage
Abaixo estão os comandos e recursos essenciais do Carthage. A maioria é executada no terminal.
🔹 1. carthage update
Assinatura carthage update [--platform PLATFORM] [--configuration CONFIG] [--no-build] [--use-xcframeworks]
O que faz: Baixa e compila todas as dependências do Cartfile.resolved (ou atualiza para as versões mais recentes, se o Cartfile.resolved não existir). Cria a pasta Carthage/Build.
# Atualizar apenas para iOS, usando xcframeworks
carthage update --platform iOS --use-xcframeworks
🔹 2. carthage bootstrap
Assinatura carthage bootstrap [--platform PLATFORM] [--configuration CONFIG] [--use-xcframeworks]
O que faz: Compila as dependências usando o Cartfile.resolved existente (sem atualizar versões). Ideal para CI/CD — garante builds reproduzíveis.
# Recompilar tudo conforme o Cartfile.resolved
carthage bootstrap --platform macOS