CLI-Framework für Swift: Konsolen-Dienstprogramme für iOS/macOS erstellen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

CLI-Framework für Swift: Leistungsstarke Konsolen-Dienstprogramme für iOS und macOS erstellen



Swift ist nicht nur eine Sprache für mobile Apps. Mit dem Aufkommen von Swift Package Manager (SPM) und Frameworks wie ArgumentParser haben Entwickler die Möglichkeit, vollwertige Konsolen-Tools für macOS und sogar für iOS (im Rahmen von Server- oder CI/CD-Prozessen) zu erstellen. CLI (Command Line Interface) Frameworks für Swift ermöglichen das Parsen von Befehlszeilenargumenten, die Verarbeitung von Flags, Optionen und Unterbefehlen sowie die automatische Generierung von Hilfetexten.



In diesem Artikel werden wir eines der beliebtesten und offiziellen CLI-Frameworks im Detail analysieren – Swift ArgumentParser (entwickelt von Apple). Sie erfahren, wie Sie es über SPM installieren, ein einfaches Konsolen-Tool schreiben, Unterbefehle und Argumente hinzufügen und Codebeispiele für reale Aufgaben sehen.



Was ist ein CLI-Framework für Swift?



Ein CLI-Framework ist eine Bibliothek, die die Routinearbeit des Parsens einer Befehlszeile übernimmt. Anstatt manuell Schleifen über CommandLine.arguments zu schreiben, beschreiben Sie die Struktur des Befehls deklarativ: welche Argumente erforderlich sind, welche optional sind, welche Flags unterstützt werden. Das Framework generiert selbstständig die Hilfe (--help) und behandelt Eingabefehler.



Hauptfunktionen von Swift ArgumentParser:

  • Deklarative Beschreibung von Argumenten und Optionen
  • Automatische Generierung von Hilfe und Version
  • Unterstützung für Unterbefehle (wie bei git commit oder swift build)
  • Typvalidierung (Int, String, Double und benutzerdefinierte Typen)
  • Integration mit SPM und Xcode


Installation über Swift Package Manager



Fügen Sie die Abhängigkeit in Ihre Package.swift Ihres Projekts hinzu:



// swift-tools-version:5.9import PackageDescription

let package = Package( name: "MyCLITool", dependencies: [ .package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.2.0") ], targets: [ .executableTarget( name: "MyCLITool", dependencies: [ .product(name: "ArgumentParser", package: "swift-argument-parser") ] ) ])


Führen Sie nun swift build aus – die Bibliothek wird heruntergeladen und kompiliert.



Den ersten Befehl schreiben



Erstellen wir ein einfaches Dienstprogramm, das den Benutzer mit Namen und Alter begrüßt.



import ArgumentParser

struct Greet: ParsableCommand { @Argument(help: "Name des Benutzers") var name: String

@Option(name: .shortAndLong, help: "Alter") var age: Int?

mutating func run() throws { if let age = age { print("Hallo, \\(name)! Du bist \\(age) Jahre alt.") } else { print("Hallo, \\(name)!") } }}

Greet.main()


Starten Sie die kompilierte Binärdatei:

./MyCLITool "Anna" --age 25# Ausgabe: Hallo, Anna! Du bist 25 Jahre alt.

./MyCLITool "Max"# Ausgabe: Hallo, Max!


Die automatisch generierte Hilfe (--help) zeigt alle Argumente und Optionen an.



Unterbefehle: Struktur wie in echten Dienstprogrammen



Häufig haben CLI-Tools mehrere Unterbefehle: create, delete, list. ArgumentParser unterstützt dies von Haus aus.



import ArgumentParser

struct TaskManager: ParsableCommand { static var configuration = CommandConfiguration( subcommands: [Add.self, List.self, Delete.self] )}

struct Add: ParsableCommand { @Argument(help: "Aufgabentext") var text: String

func run() { print("Aufgabe hinzugefügt: \\(text)") }}

struct List: ParsableCommand { func run() { print("Aufgabenliste:")

Empfehlungen