Konfigurieren Sie den Swift Package Manager mit CodeArtifact - CodeArtifact

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren Sie den Swift Package Manager mit CodeArtifact

Um den Swift Package Manager zum Veröffentlichen von Paketen oder zum Konsumieren von Paketen zu verwenden AWS CodeArtifact, müssen Sie zunächst Anmeldeinformationen für den Zugriff auf Ihr CodeArtifact Repository einrichten. Die empfohlene Methode zur Konfiguration des Swift Package Managers CLI mit Ihren CodeArtifact Anmeldeinformationen und Ihrem Repository-Endpunkt ist die Verwendung des aws codeartifact login Befehls. Sie können den Swift Package Manager auch manuell konfigurieren.

Konfigurieren Sie Swift mit dem Login-Befehl

Verwenden Sie den aws codeartifact login Befehl, um den Swift Package Manager mit zu konfigurieren CodeArtifact.

Anmerkung

Um den Login-Befehl zu verwenden, ist Swift 5.8 oder höher erforderlich und Swift 5.9 oder höher wird empfohlen.

Der aws codeartifact login Befehl führt Folgendes aus:

  1. Rufen Sie ein Authentifizierungstoken von Ihrer Umgebung ab CodeArtifact und speichern Sie es in Ihrer Umgebung. Wie die Anmeldeinformationen gespeichert werden, hängt vom Betriebssystem der Umgebung ab:

    1. macOS: In der macOS Keychain App wird ein Eintrag erstellt.

    2. Linux und Windows: In der ~/.netrc Datei wird ein Eintrag erstellt.

    Wenn in allen Betriebssystemen ein Eintrag für Anmeldeinformationen vorhanden ist, ersetzt dieser Befehl diesen Eintrag durch ein neues Token.

  2. Rufen Sie Ihren CodeArtifact Repository-Endpunkt URL ab und fügen Sie ihn Ihrer Swift-Konfigurationsdatei hinzu. Der Befehl fügt den Repository-Endpunkt URL zur Konfigurationsdatei auf Projektebene hinzu, die sich unter /path/to/project/.swiftpm/configuration/registries.json befindet.

Anmerkung

Der aws codeartifact login Befehl ruft swift package-registry Befehle auf, die von dem Verzeichnis aus ausgeführt werden müssen, das die Package.swift Datei enthält. Aus diesem Grund muss der aws codeartifact login Befehl innerhalb des Swift-Projekts ausgeführt werden.

Um Swift mit dem Login-Befehl zu konfigurieren
  1. Navigieren Sie zum Swift-Projektverzeichnis, das die Package.swift Datei Ihres Projekts enthält.

  2. Führen Sie den Befehl aws codeartifact login aus.

    Wenn Sie auf ein Repository in einer Domain zugreifen, die Sie besitzen, müssen Sie dies nicht angeben--domain-owner. Weitere Informationen finden Sie unter Kontenübergreifende Domänen.

    aws codeartifact login --tool swift --domain my_domain \ --domain-owner 111122223333 --repository my_repo \ [--namespace my_namespace]

Die --namespace Option konfiguriert die Anwendung so, dass sie nur Pakete aus Ihrem CodeArtifact Repository verwendet, wenn sie sich im angegebenen Namespace befinden. CodeArtifact Namespaces sind ein Synonym für Bereiche und werden verwendet, um Code in logische Gruppen zu organisieren und Namenskollisionen zu verhindern, die auftreten können, wenn Ihre Codebasis mehrere Bibliotheken umfasst.

Der Standardzeitraum für die Autorisierung nach dem Aufrufen login beträgt 12 Stunden und login muss aufgerufen werden, um das Token regelmäßig zu aktualisieren. Weitere Hinweise zu dem mit dem login Befehl erstellten Autorisierungstoken finden Sie unterMit dem login Befehl erstellte Tokens.

Konfigurieren Sie Swift ohne den Login-Befehl

Es wird zwar empfohlen, Swift mit dem aws codeartifact login Befehl zu konfigurieren, aber Sie können den Swift Package Manager auch ohne den Login-Befehl konfigurieren, indem Sie die Swift Package Manager-Konfiguration manuell aktualisieren.

Im folgenden Verfahren verwenden Sie den, AWS CLI um Folgendes zu tun:

  1. Rufen Sie ein Authentifizierungstoken von Ihrer Umgebung ab CodeArtifact und speichern Sie es dort. Wie die Anmeldeinformationen gespeichert werden, hängt vom Betriebssystem der Umgebung ab:

    1. macOS: In der macOS Keychain App wird ein Eintrag erstellt.

    2. Linux und Windows: In der ~/.netrc Datei wird ein Eintrag erstellt.

  2. Rufen Sie Ihren CodeArtifact Repository-Endpunkt abURL.

  3. Fügen Sie in der ~/.swiftpm/configuration/registries.json Konfigurationsdatei einen Eintrag mit Ihrem Repository-Endpunkt URL und Authentifizierungstyp hinzu.

Um den Swift ohne den Login-Befehl zu konfigurieren
  1. Verwenden Sie in einer Befehlszeile den folgenden Befehl, um ein CodeArtifact Autorisierungstoken abzurufen und es in einer Umgebungsvariablen zu speichern.

    • Ersetzen my_domain mit Ihrem CodeArtifact Domainnamen.

    • Ersetzen 111122223333 mit der AWS Konto-ID des Inhabers der Domain. Wenn Sie auf ein Repository in einer Domain zugreifen, die Sie besitzen, müssen Sie dies nicht angeben--domain-owner. Weitere Informationen finden Sie unter Kontenübergreifende Domänen.

    macOS and Linux
    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
    Windows
    • Windows (unter Verwendung der Standard-Befehlsshell):

      for /f %i in ('aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i
    • Windows PowerShell:

      $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text
  2. Rufen Sie den Endpunkt Ihres CodeArtifact Repositorys ab, indem Sie den folgenden Befehl ausführen. Ihr Repository-Endpunkt wird verwendet, um den Swift Package Manager auf Ihr Repository zu verweisen, um Pakete zu konsumieren oder zu veröffentlichen.

    • Ersetzen my_domain mit Ihrem CodeArtifact Domainnamen.

    • Ersetzen 111122223333 mit der AWS Konto-ID des Inhabers der Domain. Wenn Sie auf ein Repository in einer Domain zugreifen, die Sie besitzen, müssen Sie dies nicht angeben--domain-owner. Weitere Informationen finden Sie unter Kontenübergreifende Domänen.

    • Ersetzen my_repo mit Ihrem CodeArtifact Repository-Namen.

    macOS and Linux
    export CODEARTIFACT_REPO=`aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format swift --query repositoryEndpoint --output text`
    Windows
    • Windows (unter Verwendung der Standard-Befehlsshell):

      for /f %i in ('aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format swift --query repositoryEndpoint --output text') do set CODEARTIFACT_REPO=%i
    • Windows PowerShell:

      $env:CODEARTIFACT_REPO = aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format swift --query repositoryEndpoint --output text

    Im Folgenden finden Sie URL ein Beispiel für einen Repository-Endpunkt.

    https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/swift/my_repo/
    Anmerkung

    Um einen Dual-Stack-Endpunkt zu verwenden, verwenden Sie den codeartifact.region.on.aws Endpunkt.

    Wichtig

    Sie müssen login an das Ende des URL Repository-Endpunkts anhängen, wenn Sie ihn zur Konfiguration des Swift Package Managers verwenden. Dies wird in den Befehlen dieses Verfahrens für Sie erledigt.

  3. Wenn diese beiden Werte in Umgebungsvariablen gespeichert sind, übergeben Sie sie mit dem folgenden swift package-registry login Befehl an Swift:

    macOS and Linux
    swift package-registry login ${CODEARTIFACT_REPO}login --token ${CODEARTIFACT_AUTH_TOKEN}
    Windows
    • Windows (unter Verwendung der Standard-Befehlsshell):

      swift package-registry login %CODEARTIFACT_REPO%login --token %CODEARTIFACT_AUTH_TOKEN%
    • Windows PowerShell:

      swift package-registry login $Env:CODEARTIFACT_REPO+"login" --token $Env:CODEARTIFACT_AUTH_TOKEN
  4. Aktualisieren Sie als Nächstes die von Ihrer Anwendung verwendete Paketregistrierung, sodass alle Abhängigkeiten aus Ihrem CodeArtifact Repository abgerufen werden. Dieser Befehl muss in dem Projektverzeichnis ausgeführt werden, in dem Sie versuchen, die Paketabhängigkeit aufzulösen:

    macOS and Linux
    $ swift package-registry set ${CODEARTIFACT_REPO} [--scope my_scope]
    Windows
    • Windows (unter Verwendung der Standard-Befehlsshell):

      $ swift package-registry set %CODEARTIFACT_REPO% [--scope my_scope]
    • Windows PowerShell:

      $ swift package-registry set $Env:CODEARTIFACT_REPO [--scope my_scope]

    Die --scope Option konfiguriert die Anwendung so, dass sie nur Pakete aus Ihrem CodeArtifact Repository verwendet, wenn sie sich im angegebenen Bereich befinden. Bereiche sind gleichbedeutend mit CodeArtifact Namespaces und werden verwendet, um Code in logische Gruppen zu organisieren und Namenskollisionen zu verhindern, die auftreten können, wenn Ihre Codebasis mehrere Bibliotheken umfasst.

  5. Sie können überprüfen, ob die Konfiguration korrekt eingerichtet wurde, indem Sie den Inhalt der .swiftpm/configuration/registries.json Datei auf Projektebene anzeigen, indem Sie den folgenden Befehl in Ihrem Projektverzeichnis ausführen:

    $ cat .swiftpm/configuration/registries.json { "authentication" : { }, "registries" : { "[default]" : { "url" : "https://my-domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/swift/my-repo/" } }, "version" : 1 }

Nachdem Sie den Swift Package Manager mit Ihrem CodeArtifact Repository konfiguriert haben, können Sie ihn verwenden, um Swift-Pakete zu veröffentlichen und zu verwenden. Weitere Informationen finden Sie unter Swift-Pakete konsumieren und veröffentlichen.