📦 Carthage pour Swift : le gestionnaire de dépendances décentralisé
Carthage est un gestionnaire de dépendances décentralisé pour l'écosystème Apple (iOS, macOS, tvOS, watchOS). Contrairement à CocoaPods, Carthage ne modifie pas votre projet automatiquement : il compile les frameworks, et c'est vous qui les intégrez dans Xcode. Cela vous donne un contrôle total sur le processus de build et réduit la « magie » au minimum.
Cet outil utilise Carthage (le nom correspond à l'outil lui-même) et fonctionne via un fichier Cartfile — un fichier déclaratif où vous listez vos dépendances. Carthage clone les dépôts, les compile (avec xcodebuild) et place les fichiers .framework prêts à l'emploi dans le dossier Carthage/Build. Vous les ajoutez ensuite manuellement à votre projet.
Pourquoi utiliser Carthage ? Si vous aimez la transparence, voulez éviter les conflits de versions et n'appréciez pas que les outils modifient votre projet automatiquement. Il est parfait pour les équipes où chaque développeur décide comment intégrer ses dépendances, et pour les projets avec des exigences de sécurité strictes.
1. Installation de Carthage
Carthage s'installe via Homebrew (recommandé) ou en téléchargeant le fichier .pkg depuis GitHub.
# Installation via Homebrew
brew install carthage
# Vérification de la version
carthage version
Si Homebrew n'est pas installé, commencez par l'installer : /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Carthage n'est officiellement pas pris en charge sous Linux ou Windows (macOS uniquement).
2. Démarrage rapide — exemple minimal fonctionnel
Créez un nouveau projet Xcode (par exemple, Single View App). Ensuite, à la racine du projet, créez un fichier Cartfile (sans extension) et ajoutez une dépendance :
# Cartfile
github "Alamofire/Alamofire" ~> 5.8
Exécutez maintenant la commande dans le terminal (depuis le dossier du projet) :
carthage update --platform iOS
Une fois terminé, le dossier Carthage/Build/iOS contiendra Alamofire.framework. Ouvrez Xcode, glissez-déposez ce .framework dans la section Frameworks, Libraries, and Embedded Content de votre cible. Sélectionnez « Embed & Sign ».
Vous pouvez maintenant importer la bibliothèque :
import Alamofire
// Requête minimale
AF.request("https://api.github.com/users/defunkt").response { response in
debugPrint(response)
}
Voilà ! Vous venez d'intégrer une dépendance avec Carthage.
3. Méthodes et fonctions principales de Carthage
Voici les commandes et fonctionnalités clés de Carthage. La plupart s'exécutent depuis le terminal.
🔹 1. carthage update
Signature carthage update [--platform PLATFORM] [--configuration CONFIG] [--no-build] [--use-xcframeworks]
Fonction : Télécharge et compile toutes les dépendances listées dans Cartfile.resolved (ou les met à jour vers les dernières versions si Cartfile.resolved est absent). Crée le dossier Carthage/Build.
# Mettre à jour uniquement pour iOS, en utilisant les xcframeworks
carthage update --platform iOS --use-xcframeworks
🔹 2. carthage bootstrap
Signature carthage bootstrap [--platform PLATFORM] [--configuration CONFIG] [--use-xcframeworks]
Fonction : Compile les dépendances en utilisant le Cartfile.resolved existant (sans mettre à jour les versions). Idéal pour l'intégration continue (CI/CD) — garantit des builds reproductibles.
# Recompiler tout selon le Cartfile.resolved
carthage bootstrap --platform macOS
Aussi dans la bibliothèque
Event Bus et le pattern Observer en JavaScript (Node.js) — création de systèmes d'événements flexibles
Travailler avec Markdown en C# (.NET) : bibliothèques et exemples
Travailler avec Apache Kafka en Swift (iOS/macOS) : bibliothèques et exemples
Envoi de SMS en C++ : API bibliothèque LibCurl et requêtes REST
Envoi de SMS en Go (Golang) : API de la bibliothèque golang-sms