Carthage para Swift: guia completo com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

📦 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.

Comando exato de instalação (macOS):
# 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

Recommendations