で Swift パッケージマネージャーを設定する CodeArtifact - CodeArtifact

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

で Swift パッケージマネージャーを設定する CodeArtifact

Swift Package Manager を使用して にパッケージを公開したり、 からパッケージを消費したりするには AWS CodeArtifact、まず CodeArtifact リポジトリにアクセスするための認証情報を設定する必要があります。 CodeArtifact 認証情報とリポジトリエンドポイントを使用して Swift Package Manager CLI を設定する推奨方法は、 aws codeartifact login コマンドを使用することです。Swift パッケージマネージャーは、手動で設定することもできます。

login コマンドを使用して Swift を設定する

aws codeartifact login コマンドを使用して、 で Swift パッケージマネージャーを設定します CodeArtifact。

注記

login コマンドを使用するには Swift 5.8 以降が必要で、Swift 5.9 以降の使用を推奨します。

aws codeartifact login コマンドは、次の操作を行います。

  1. から認証トークンを取得し CodeArtifact 、環境に保存します。認証情報の保存方法は、環境のオペレーティングシステムによって異なります。

    1. macOS: macOS キーチェーンアプリケーションにエントリが作成されます。

    2. Linux および Windows: ~/.netrc ファイルにエントリが作成されます。

    どちらのオペレーティングシステムの場合でも、認証情報エントリが存在する場合、このコマンドは既存のエントリを新しいトークンに置き換えます。

  2. CodeArtifact リポジトリエンドポイント URL を取得し、Swift 設定ファイルに追加します。このコマンドは、リポジトリのエンドポイント URL を、/path/to/project/.swiftpm/configuration/registries.json にあるプロジェクトレベルの設定ファイルに追加します。

注記

aws codeartifact login コマンドは、実行が必要な swift package-registry コマンドを、Package.swift ファイルを含むディレクトリから呼び出します。そのため、aws codeartifact login コマンドは Swift プロジェクト内から実行する必要があります。

login コマンドを使用して Swift を設定するには
  1. プロジェクトの Package.swift ファイルが含まれている Swift プロジェクトディレクトリに移動します。

  2. 次の aws codeartifact login コマンドを実行します。

    所有しているドメインのリポジトリにアクセスする場合、--domain-ownerを含める必要はありません。詳細については、「クロスアカウントドメイン」を参照してください。

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

--namespace オプションは、指定された名前空間にある場合にのみ CodeArtifact リポジトリのパッケージを使用するようにアプリケーションを設定します。CodeArtifact 名前空間はスコープと同義であり、コードを論理グループに整理し、コードベースに複数のライブラリが含まれている場合に発生する可能性のある名前の衝突を防ぐために使用されます。

login 実行後のデフォルトの認証期限は 12 時間です。login はトークンを定期的に更新するために実行されねばなりません。loginコマンドを使用して作成された認証トークンの詳細については、loginコマンドで作成されたトークンを参照してください。

login コマンドを使用せずに Swift を設定する

aws codeartifact login コマンドを使用して Swift を設定することを推奨しますが、Swift パッケージマネージャーの設定を手動で更新することで、login コマンドを使用せずに Swift パッケージマネージャーを設定することもできます。

次の手順では、 AWS CLI を使用して次の操作を行います。

  1. から認証トークンを取得し CodeArtifact 、環境に保存します。認証情報の保存方法は、環境のオペレーティングシステムによって異なります。

    1. macOS: macOS キーチェーンアプリケーションにエントリが作成されます。

    2. Linux および Windows: ~/.netrc ファイルにエントリが作成されます。

  2. CodeArtifact リポジトリエンドポイント URL を取得します。

  3. ~/.swiftpm/configuration/registries.json 設定ファイルに、リポジトリのエンドポイント URL と認証タイプを含むエントリを追加します。

login コマンドを使用せずに Swift を設定するには
  1. コマンドラインで、次のコマンドを使用して CodeArtifact 認証トークンを取得し、環境変数に保存します。

    • my_domain を CodeArtifact ドメイン名に置き換えます。

    • 111122223333 をドメイン所有者の AWS アカウント ID に置き換えます。所有しているドメインのリポジトリにアクセスする場合、--domain-ownerを含める必要はありません。詳細については、「クロスアカウントドメイン」を参照してください。

    macOS and Linux
    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
    Windows
    • Windows (デフォルトのコマンドシェルを使用):

      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. 次のコマンドを実行して、 CodeArtifact リポジトリのエンドポイントを取得します。リポジトリエンドポイントは、パッケージを使用または公開するリポジトリを Swift パッケージマネージャーに示すために使用されます。

    • my_domain を CodeArtifact ドメイン名に置き換えます。

    • 111122223333 をドメイン所有者の AWS アカウント ID に置き換えます。所有しているドメインのリポジトリにアクセスする場合、--domain-ownerを含める必要はありません。詳細については、「クロスアカウントドメイン」を参照してください。

    • my_repo を CodeArtifact リポジトリ名に置き換えます。

    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 (デフォルトのコマンドシェルを使用):

      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

    次の URL は、リポジトリエンドポイントの例です。

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

    Swift パッケージマネージャーの設定に使用する場合は、リポジトリの URL エンドポイントの末尾に login を追加する必要があります。これはこの手順のコマンドで自動的に行われます。

  3. これら 2 つの値を環境変数に格納したら、以下のように swift package-registry login コマンドを使用して Swift に渡します。

    macOS and Linux
    swift package-registry login ${CODEARTIFACT_REPO}login --token ${CODEARTIFACT_AUTH_TOKEN}
    Windows
    • Windows (デフォルトのコマンドシェルを使用):

      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. 次に、アプリケーションで使用されるパッケージレジストリを更新して、依存関係が CodeArtifact リポジトリからプルされるようにします。このコマンドは、パッケージの依存関係を解決しようとしているプロジェクトディレクトリで実行する必要があります。

    macOS and Linux
    $ swift package-registry set ${CODEARTIFACT_REPO} [--scope my_scope]
    Windows
    • Windows (デフォルトのコマンドシェルを使用):

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

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

    --scope オプションは、指定された範囲内にある場合にのみ CodeArtifact リポジトリのパッケージを使用するようにアプリケーションを設定します。スコープはCodeArtifact 名前空間 と同義であり、コードを論理グループに整理し、コードベースに複数のライブラリが含まれている場合に発生する可能性のある名前の衝突を防ぐために使用されます。

  5. プロジェクトディレクトリで以下のコマンドを実行しプロジェクトレベルの .swiftpm/configuration/registries.json ファイルの内容を表示することで、正しく設定されたことを確認できます。

    $ 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 }

Swift Package Manager を CodeArtifact リポジトリで設定したので、これを使用して Swift パッケージをリポジトリとの間で公開および使用できます。詳細については、「Swift パッケージの使用と公開」を参照してください。