翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CodeArtifact での Swift パッケージマネージャーの設定
Swift Package Manager を使用して AWS CodeArtifact にパッケージを発行したり、CodeArtifact からパッケージを使用したりするには、まず CodeArtifact リポジトリにアクセスするための認証情報を設定する必要があります。CodeArtifact の認証情報とリポジトリエンドポイントに Swift パッケージマネージャー CLI を設定するには、aws codeartifact login
コマンドの使用を推奨します。Swift パッケージマネージャーは、手動で設定することもできます。
login コマンドを使用して Swift を設定する
aws codeartifact login
コマンドを使用して、CodeArtifact で Swift パッケージマネージャーを設定します。
注記
login コマンドを使用するには Swift 5.8 以降が必要で、Swift 5.9 以降の使用を推奨します。
aws codeartifact login
コマンドは、次の操作を行います。
-
CodeArtifact から認証トークンを取得して、認証トークンを環境変数に保存します。認証情報の保存方法は、環境のオペレーティングシステムによって異なります。
macOS: macOS キーチェーンアプリケーションにエントリが作成されます。
Linux および Windows:
~/.netrc
ファイルにエントリが作成されます。
どちらのオペレーティングシステムの場合でも、認証情報エントリが存在する場合、このコマンドは既存のエントリを新しいトークンに置き換えます。
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 を設定するには
プロジェクトの
Package.swift
ファイルが含まれている Swift プロジェクトディレクトリに移動します。次の
aws codeartifact login
コマンドを実行します。所有しているドメインのリポジトリにアクセスする場合、
--domain-owner
を含める必要はありません。詳細については、「クロスアカウントドメイン」を参照してください。aws codeartifact login --tool
swift
--domainmy_domain
\ --domain-owner111122223333
--repositorymy_repo
\ [--namespacemy_namespace
]
--namespace
オプションは、CodeArtifact リポジトリのパッケージが指定された名前空間にある場合にのみ、パッケージを使用するようにアプリケーションを設定します。CodeArtifact の名前空間はスコープと同義であり、コードを論理グループに整理したり、コードベースに複数のライブラリが含まれている場合に発生する可能性のある名前の競合を防ぐために使用されます。
login
を呼び出した後のデフォルトの認可時間は 12 時間であり、トークンを定期的に更新するには、login
を呼び出す必要があります。login
コマンドで作成される認可トークンの詳細については、「loginコマンドで作成されたトークン」を参照してください。
login コマンドを使用せずに Swift を設定する
aws codeartifact login コマンドを使用して Swift を設定することを推奨しますが、Swift パッケージマネージャーの設定を手動で更新することで、login コマンドを使用せずに Swift パッケージマネージャーを設定することもできます。
次の手順では、 AWS CLI を使用して以下を実行します。
CodeArtifact から認証トークンを取得して、認証トークンを環境変数に保存します。認証情報の保存方法は、環境のオペレーティングシステムによって異なります。
macOS: macOS キーチェーンアプリケーションにエントリが作成されます。
Linux および Windows:
~/.netrc
ファイルにエントリが作成されます。
CodeArtifact リポジトリのエンドポイント URL を取得します。
~/.swiftpm/configuration/registries.json
設定ファイルに、リポジトリのエンドポイント URL と認証タイプを含むエントリを追加します。
login コマンドを使用せずに Swift を設定するには
コマンドラインで以下のコマンドを使用して、CodeArtifact 認可トークンを取得し、認可トークンを環境変数に保存します。
my_domain
を CodeArtifact ドメイン名に置き換えます。111122223333
「」をドメイン所有者の AWS アカウント ID に置き換えます。所有しているドメインのリポジトリにアクセスする場合、--domain-owner
を含める必要はありません。詳細については、「クロスアカウントドメイン」を参照してください。
次のコマンドを実行して、CodeArtifact リポジトリのエンドポイントを取得します。リポジトリエンドポイントは、パッケージを使用または公開するリポジトリを Swift パッケージマネージャーに示すために使用されます。
my_domain
を CodeArtifact ドメイン名に置き換えます。111122223333
「」をドメイン所有者の AWS アカウント ID に置き換えます。所有しているドメインのリポジトリにアクセスする場合、--domain-owner
を含める必要はありません。詳細については、「クロスアカウントドメイン」を参照してください。my_repo
を CodeArtifact リポジトリ名で置き換えます。
次の URL は、リポジトリエンドポイントの例です。
https://
my_domain
-111122223333.d.codeartifact.us-west-2
.amazonaws.com/swift/my_repo
/注記
デュアルスタックエンドポイントを使用するには、
codeartifact.
エンドポイントを使用します。region
.on.aws重要
Swift パッケージマネージャーの設定に使用する場合は、リポジトリの URL エンドポイントの末尾に
login
を追加する必要があります。これはこの手順のコマンドで自動的に行われます。これら 2 つの値を環境変数に格納したら、以下のように
swift package-registry login
コマンドを使用して Swift に渡します。次に、アプリケーションが使用するパッケージレジストリを更新して、依存関係が CodeArtifact リポジトリから取得されるようにします。このコマンドは、パッケージの依存関係を解決しようとしているプロジェクトディレクトリで実行する必要があります。
--scope
オプションは、CodeArtifact リポジトリのパッケージが指定されたスコープにある場合にのみ、パッケージを使用するようにアプリケーションを設定します。スコープは CodeArtifact の名前空間と同義であり、コードを論理グループに整理したり、コードベースに複数のライブラリが含まれている場合に発生する可能性のある名前の競合を防ぐために使用されます。-
プロジェクトディレクトリで以下のコマンドを実行しプロジェクトレベルの
.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 }
CodeArtifact リポジトリでの Swift パッケージマネージャーの設定は以上です。これで Swift パッケージマネージャーを使用して Swift パッケージをリポジトリに公開したり、リポジトリから Swift パッケージを使用したりできるようになります。詳細については、「Swift パッケージの使用と公開」を参照してください。