

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

# Swift パッケージの使用と公開
<a name="swift-publish-consume"></a>

## CodeArtifact で Swift パッケージを使用する
<a name="consume-swift-packages"></a>

次の手順を使用して、 AWS CodeArtifact リポジトリから Swift パッケージを使用します。

**CodeArtifact リポジトリで Swift パッケージを使用するには**

1. まだ設定していない場合は、「[CodeArtifact での Swift パッケージマネージャーの設定](configure-swift.md)」の手順に従って、CodeArtifact リポジトリを使用するように適切な認証情報を使用して Swift パッケージマネージャーを設定します。
**注記**  
認可トークンの有効期限は 12 時間です。トークンの作成後 12 時間が経過した場合は、新しいトークンを作成する必要があります。

1. アプリケーションプロジェクトフォルダー内の `Package.swift` ファイルを編集して、プロジェクトで使用されるパッケージの依存関係を更新します。

   1. `Package.swift` ファイルに `dependencies` セクションが含まれていない場合は、セクションを追加してください。

   1. `Package.swift`ファイルの `dependencies` セクションにパッケージ ID を追加して、使用するパッケージを追加します。パッケージ ID は、スコープとパッケージ名をピリオドで区切ったものです。例については、後のステップのコードスニペットを参照してください。
**ヒント**  
パッケージ ID は、CodeArtifact コンソールで確認できます。使用する特定のパッケージバージョンを探して、パッケージバージョンページの **[インストールショートカット]** の指示を参照してください。

   1. `Package.swift` ファイルに `targets` セクションが含まれていない場合は、セクションを追加してください。

   1. `targets` セクションに、依存関係の使用に必要なターゲットを追加します。

      以下のスニペットは、`Package.swift` ファイル内の設定済みの `dependencies` セクションおよび `targets` セクションを示すスニペットの例です。

      ```
      ...
          ],
          dependencies: [
              .package(id: "my_scope.package_name", from: "1.0.0")
          ],
          targets: [
            .target(
               name: "MyApp",
               dependencies: ["package_name"]
            ),...
          ],
      ...
      ```

1. 設定が完了したので、次のコマンドを使用して CodeArtifact からパッケージの依存関係をダウンロードします。

   ```
   swift package resolve
   ```

## CodeArtifact の Swift パッケージを Xcode で使用する
<a name="consume-swift-packages-xcode"></a>

CodeArtifact リポジトリの Swift パッケージを Xcode で使用するには、次の手順に従います。

**CodeArtifact リポジトリの Swift パッケージを Xcode で使用するには**

1. まだ設定していない場合は、「[CodeArtifact での Swift パッケージマネージャーの設定](configure-swift.md)」の手順に従って、CodeArtifact リポジトリを使用するように適切な認証情報を使用して Swift パッケージマネージャーを設定します。
**注記**  
認可トークンの有効期限は 12 時間です。トークンの作成後 12 時間が経過した場合は、新しいトークンを作成する必要があります。

1. パッケージを Xcode のプロジェクトに依存関係として追加します。

   1. **[ファイル] > [パッケージを追加]** と選択します。

   1. 検索バーを使用してパッケージを検索します。検索では `package_scope.package_name` の形式を使用します。

   1. パッケージが見つかったら、パッケージを選択して、**[パッケージを追加]** を選択します。

   1. パッケージの確認後、依存関係として追加するパッケージを選択し、**[パッケージを追加]** を選択します。

CodeArtifact リポジトリを Xcode で使用する際に問題が発生した場合、「[Swift のトラブルシューティング](swift-troubleshooting.md)」を参照して一般的な問題と考えられる修正方法を確認してください。

## Swift パッケージを CodeArtifact に公開する
<a name="publish-swift-packages"></a>

Swift パッケージを公開するには、CodeArtifact で Swift 5.9 以降および `swift package-registry publish` コマンドの使用を推奨します。以前のバージョンを使用している場合、Swift パッケージを CodeArtifact に公開するには、Curl コマンドを使用する必要があります。

### `swift package-registry publish` コマンドを使用した CodeArtifact パッケージの公開
<a name="publish-swift-packages-publish-command"></a>

Swift 5.9 以降で以下の手順を実行し、Swift パッケージマネージャーを使用して Swift パッケージを CodeArtifact リポジトリに公開します。

1. まだ設定していない場合は、「[CodeArtifact での Swift パッケージマネージャーの設定](configure-swift.md)」の手順に従って、CodeArtifact リポジトリを使用するように適切な認証情報を使用して Swift パッケージマネージャーを設定します。
**注記**  
認可トークンの有効期限は 12 時間です。作成後 12 時間が経過した場合は、新しいトークンを作成する必要があります。

1. パッケージの `Package.swift` ファイルが含まれている Swift プロジェクトディレクトリに移動します。

1. 次の `swift package-registry publish` コマンドを実行して、パッケージを公開します。このコマンドはパッケージソースアーカイブを作成して、CodeArtifact リポジトリに公開します。

   ```
   swift package-registry publish packageScope.packageName packageVersion
   ```

   例えば、次のようになります。

   ```
   swift package-registry publish myScope.myPackage 1.0.0
   ```

1. パッケージが公開され、リポジトリに存在することを確認するには、コンソールにチェックインするか、以下のように `aws codeartifact list-packages` コマンドを使用します。

   ```
   aws codeartifact list-packages --domain my_domain --repository my_repo
   ```

   以下のように `aws codeartifact list-package-versions` コマンドを使用して、パッケージの単一バージョンを一覧表示できます。

   ```
   aws codeartifact list-package-versions --domain my_domain --repository my_repo \
   --format swift --namespace my_scope --package package_name
   ```

### Curl を使用した CodeArtifact パッケージの公開
<a name="publish-swift-packages-curl"></a>

Swift 5.9 以降で使用可能な `swift package-registry publish` コマンドの使用を推奨しますが、Curl を使用して Swift パッケージを CodeArtifact に公開することもできます。

Curl を使用して Swift パッケージを AWS CodeArtifact リポジトリに発行するには、次の手順に従います。

1. まだ行っていない場合は、「[CodeArtifact での Swift パッケージマネージャーの設定](configure-swift.md)」の手順に従って `CODEARTIFACT_AUTH_TOKEN` 環境変数および `CODEARTIFACT_REPO` 環境変数を作成して更新します。
**注記**  
認可トークンは 12 時間有効です。`CODEARTIFACT_AUTH_TOKEN` 環境変数が作成されてから 12 時間が経過した場合は、新しい認証情報で環境変数を更新する必要があります。

1. Swift パッケージを作成していない場合は、最初に以下のコマンドを実行してパッケージを作成します。

   ```
   mkdir testDir && cd testDir
   swift package init
   git init .
   swift package archive-source
   ```

1. 次の Curl コマンドを使用して、Swift パッケージを CodeArtifact に公開します。

------
#### [ macOS and Linux ]

   ```
   curl -X PUT  --user "aws:$CODEARTIFACT_AUTH_TOKEN" \
   -H "Accept: application/vnd.swift.registry.v1+json" \
   -F source-archive="@test_dir_package_name.zip" \
   "${CODEARTIFACT_REPO}my_scope/package_name/packageVersion"
   ```

------
#### [ Windows ]

   ```
   curl -X PUT  --user "aws:%CODEARTIFACT_AUTH_TOKEN%" \
   -H "Accept: application/vnd.swift.registry.v1+json" \
   -F source-archive="@test_dir_package_name.zip" \
   "%CODEARTIFACT_REPO%my_scope/package_name/packageVersion"
   ```

------

1. パッケージが公開され、リポジトリに存在することを確認するには、コンソールにチェックインするか、以下のように `aws codeartifact list-packages` コマンドを使用します。

   ```
   aws codeartifact list-packages --domain my_domain --repository my_repo
   ```

   以下のように `aws codeartifact list-package-versions` コマンドを使用して、パッケージの単一バージョンを一覧表示できます。

   ```
   aws codeartifact list-package-versions --domain my_domain --repository my_repo \
   --format swift --namespace my_scope --package package_name
   ```

## GitHub から Swift パッケージを取得して CodeArtifact に再度公開する
<a name="publish-swift-packages-from-github"></a>

以下の手順を使用して GitHub から Swift パッケージを取得し、CodeArtifact リポジトリに再度公開します。

**GitHub から Swift パッケージを取得して CodeArtifact に再度公開するには**

1. まだ設定していない場合は、「[CodeArtifact での Swift パッケージマネージャーの設定](configure-swift.md)」の手順に従って、CodeArtifact リポジトリを使用するように適切な認証情報を使用して Swift パッケージマネージャーを設定します。
**注記**  
認可トークンの有効期限は 12 時間です。トークンの作成後 12 時間が経過した場合は、新しいトークンを作成する必要があります。

1. 次の `git clone` コマンドを使用して、取得して再公開する Swift パッケージの git リポジトリを複製します。GitHub リポジトリの複製については、GitHub ドキュメントの「[Cloning a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository)」を参照してください。

   ```
   git clone repoURL
   ```

1. 複製したリポジトリに移動します。

   ```
   cd repoName
   ```

1. パッケージを作成して、CodeArtifact に公開します。

   1. **推奨:** Swift 5.9 以降を使用している場合は、次の `swift package-registry publish` コマンドを使用してパッケージを作成し、設定した CodeArtifact リポジトリに公開できます。

      ```
      swift package-registry publish packageScope.packageName versionNumber
      ```

      例えば、次のようになります。

      ```
      swift package-registry publish myScope.myPackage 1.0.0
      ```

   1. 5.9 より前のバージョンの Swift を使用している場合は、`swift archive-source` コマンドを使用してパッケージを作成し、その後 Curl コマンドを使用してパッケージを公開する必要があります。

      1. `CODEARTIFACT_AUTH_TOKEN` 環境変数および `CODEARTIFACT_REPO` 環境変数を設定していない場合、または設定してから 12 時間以上経過している場合は、「[login コマンドを使用せずに Swift を設定する](configure-swift.md#configure-swift-without-login-command)」の手順に従います。

      1. `swift package archive-source` コマンドを使用して Swift パッケージを作成します。

         ```
         swift package archive-source
         ```

         正常に作成されたら、コマンドラインに `Created package_name.zip` が表示されます。

      1. 次の Curl コマンドを使用して、Swift パッケージを CodeArtifact に公開します。

------
#### [ macOS and Linux ]

         ```
         curl -X PUT  --user "aws:$CODEARTIFACT_AUTH_TOKEN" \
         -H "Accept: application/vnd.swift.registry.v1+json" \
         -F source-archive="@package_name.zip" \
         "${CODEARTIFACT_REPO}my_scope/package_name/packageVersion"
         ```

------
#### [ Windows ]

         ```
         curl -X PUT  --user "aws:%CODEARTIFACT_AUTH_TOKEN%" \
         -H "Accept: application/vnd.swift.registry.v1+json" \
         -F source-archive="@package_name.zip" \
         "%CODEARTIFACT_REPO%my_scope/package_name/packageVersion"
         ```

------

1. パッケージが公開され、リポジトリに存在することを確認するには、コンソールにチェックインするか、以下のように `aws codeartifact list-packages` コマンドを使用します。

   ```
   aws codeartifact list-packages --domain my_domain --repository my_repo
   ```

   以下のように `aws codeartifact list-package-versions` コマンドを使用して、パッケージの単一バージョンを一覧表示できます。

   ```
   aws codeartifact list-package-versions --domain my_domain --repository my_repo \
   --format swift --namespace my_scope --package package_name
   ```