📦 Carthage für Swift: Dezentraler Dependency-Manager für Apple-Plattformen
Carthage ist ein dezentraler Dependency-Manager für das Apple-Ökosystem (iOS, macOS, tvOS, watchOS). Im Gegensatz zu CocoaPods verändert Carthage Ihr Projekt nicht automatisch – es baut die Frameworks, und Sie binden sie selbst in Xcode ein. Das gibt Ihnen die volle Kontrolle über den Build-Prozess und minimiert die „Magie“.
Das Tool verwendet Carthage (der Name ist identisch mit dem Werkzeug) und arbeitet über eine Cartfile – eine deklarative Datei, in der die Abhängigkeiten aufgelistet werden. Carthage klont die Repositories, baut sie (mit xcodebuild) und legt die fertigen .framework-Dateien im Ordner Carthage/Build ab. Sie fügen sie dann manuell zu Ihrem Projekt hinzu.
Warum Carthage nutzen? Wenn Sie Transparenz schätzen, Versionskonflikte vermeiden wollen und nicht mögen, wenn Tools automatisch Ihr Projekt verändern. Es ist ideal für Teams, in denen jeder selbst entscheidet, wie Abhängigkeiten eingebunden werden, und für Projekte mit strengen Sicherheitsanforderungen beim Build.
1. Carthage installieren
Carthage kann über Homebrew (empfohlen) installiert oder als .pkg von GitHub heruntergeladen werden.
# Installation über Homebrew
brew install carthage
# Version prüfen
carthage version
Falls Homebrew nicht installiert ist, installieren Sie es zuerst: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Für Linux oder Windows wird Carthage offiziell nicht unterstützt (nur macOS).
2. Schnellstart – Minimales Arbeitsbeispiel
Erstellen Sie ein neues Xcode-Projekt (z. B. Single View App). Erstellen Sie dann im Projektverzeichnis eine Datei namens Cartfile (ohne Dateiendung) und fügen Sie eine Abhängigkeit hinzu:
# Cartfile
github "Alamofire/Alamofire" ~> 5.8
Führen Sie nun im Terminal (im Projektverzeichnis) folgenden Befehl aus:
carthage update --platform iOS
Nach Abschluss erscheint im Ordner Carthage/Build/iOS die Datei Alamofire.framework. Öffnen Sie Xcode, ziehen Sie dieses .framework in den Bereich Frameworks, Libraries, and Embedded Content Ihres Targets. Wählen Sie „Embed & Sign“.
Jetzt können Sie die Bibliothek importieren:
import Alamofire
// Minimaler Request
AF.request("https://api.github.com/users/defunkt").response { response in
debugPrint(response)
}
Fertig! Sie haben soeben eine Abhängigkeit über Carthage eingebunden.
3. Wichtige Methoden und Funktionen von Carthage
Im Folgenden finden Sie die wichtigsten Carthage-Befehle und -Funktionen. Die meisten werden im Terminal ausgeführt.
🔹 1. carthage update
Syntax carthage update [--platform PLATFORM] [--configuration CONFIG] [--no-build] [--use-xcframeworks]
Funktion: Lädt alle Abhängigkeiten aus der Cartfile.resolved herunter und baut sie (oder aktualisiert sie auf die neuesten Versionen, falls Cartfile.resolved fehlt). Erstellt den Ordner Carthage/Build.
# Nur für iOS aktualisieren, mit xcframeworks
carthage update --platform iOS --use-xcframeworks
🔹 2. carthage bootstrap
Syntax carthage bootstrap [--platform PLATFORM] [--configuration CONFIG] [--use-xcframeworks]
Funktion: Baut Abhängigkeiten mit der vorhandenen Cartfile.resolved (ohne Versionsaktualisierung). Ideal für CI/CD – garantiert reproduzierbare Builds.
# Alles neu bauen, wie in Cartfile.resolved festgelegt
carthage bootstrap --platform macOS
Auch in der Bibliothek
Internationalisierung (i18n) in Swift: NSLocalizedString und String Catalog
OpenAI SDK für JavaScript (Node.js): Komplettguide mit Beispielen
JWT-Tokens in C++: Die Bibliothek jwt-cpp für die Authentifizierung
CORS für JavaScript (Node.js): Komplettleitfaden mit Beispielen
Arbeiten mit YAML in Rust: Die Bibliothek serde_yaml