

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Consommation et publication de packages Swift
<a name="swift-publish-consume"></a>

## Consommer des packages Swift à partir de CodeArtifact
<a name="consume-swift-packages"></a>

Utilisez la procédure suivante pour utiliser des packages Swift à partir d'un AWS CodeArtifact dépôt.

**Pour utiliser des packages Swift à partir d'un CodeArtifact dépôt**

1. Si ce n'est pas le cas, suivez les étapes ci-dessous [Configurez le gestionnaire de packages Swift avec CodeArtifact](configure-swift.md) pour configurer le Swift Package Manager afin d'utiliser votre CodeArtifact référentiel avec les informations d'identification appropriées.
**Note**  
Le jeton d'autorisation généré est valide pendant 12 heures. Vous devrez en créer un nouveau si 12 heures se sont écoulées depuis la création du jeton.

1. Modifiez le `Package.swift` fichier dans le dossier du projet de votre application pour mettre à jour les dépendances des packages à utiliser par votre projet.

   1. Si le `Package.swift` fichier ne contient pas de `dependencies` section, ajoutez-en une.

   1. Dans la `dependencies` section du `Package.swift` fichier, ajoutez le package que vous souhaitez utiliser en ajoutant son identifiant de package. L'identifiant du package se compose de la portée et du nom du package séparés par un point. Consultez l'extrait de code suivant une étape ultérieure pour un exemple.
**Astuce**  
Pour trouver l'identifiant du package, vous pouvez utiliser la CodeArtifact console. Recherchez la version du package que vous souhaitez utiliser et consultez les instructions du **raccourci d'installation** sur la page de version du package.

   1. Si le `Package.swift` fichier ne contient pas de `targets` section, ajoutez-en une.

   1. Dans la `targets` section, ajoutez les cibles qui devront utiliser la dépendance.

      L'extrait suivant est un exemple d'extrait illustrant les sections configurées `dependencies` et les `targets` sections d'un fichier : `Package.swift`

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

1. Maintenant que tout est configuré, utilisez la commande suivante pour télécharger les dépendances du package depuis CodeArtifact.

   ```
   swift package resolve
   ```

## Consommation de packages Swift depuis CodeArtifact Xcode
<a name="consume-swift-packages-xcode"></a>

Utilisez la procédure suivante pour utiliser des packages Swift à partir d'un CodeArtifact dépôt dans Xcode.

**Pour consommer des packages Swift à partir d'un CodeArtifact dépôt dans Xcode**

1. Si ce n'est pas le cas, suivez les étapes ci-dessous [Configurez le gestionnaire de packages Swift avec CodeArtifact](configure-swift.md) pour configurer le Swift Package Manager afin d'utiliser votre CodeArtifact référentiel avec les informations d'identification appropriées.
**Note**  
Le jeton d'autorisation généré est valide pendant 12 heures. Vous devrez en créer un nouveau si 12 heures se sont écoulées depuis la création du jeton.

1. Ajoutez les packages en tant que dépendance dans votre projet dans Xcode.

   1. Choisissez **Fichier > Ajouter des packages**.

   1. Recherchez votre package à l'aide de la barre de recherche. Votre recherche doit figurer dans le formulaire`package_scope.package_name`.

   1. Une fois trouvé, choisissez le package et choisissez **Ajouter un package**.

   1. Une fois le package vérifié, choisissez les produits du package que vous souhaitez ajouter en tant que dépendance, puis choisissez **Ajouter un package**.

Si vous rencontrez des problèmes lors de l'utilisation de votre CodeArtifact dépôt avec Xcode, consultez [Résolution rapide des problèmes](swift-troubleshooting.md) les problèmes courants et les solutions possibles.

## Publication de packages Swift sur CodeArtifact
<a name="publish-swift-packages"></a>

CodeArtifact recommande Swift 5.9 ou version ultérieure et utilise la `swift package-registry publish` commande pour publier des packages Swift. Si vous utilisez une version antérieure, vous devez utiliser une commande Curl pour publier les packages Swift dans. CodeArtifact

### Publier CodeArtifact des packages à l'aide de la `swift package-registry publish` commande
<a name="publish-swift-packages-publish-command"></a>

Utilisez la procédure suivante avec Swift 5.9 ou version ultérieure pour publier des packages Swift dans un CodeArtifact référentiel à l'aide du Swift Package Manager.

1. Si ce n'est pas le cas, suivez les étapes ci-dessous [Configurez le gestionnaire de packages Swift avec CodeArtifact](configure-swift.md) pour configurer le Swift Package Manager afin d'utiliser votre CodeArtifact référentiel avec les informations d'identification appropriées.
**Note**  
Le jeton d'autorisation généré est valide pendant 12 heures. Vous devrez en créer un nouveau si 12 heures se sont écoulées depuis sa création.

1. Accédez au répertoire du projet Swift qui contient le `Package.swift` fichier de votre package.

1. Exécutez la `swift package-registry publish` commande suivante pour publier le package. La commande crée une archive source de package et la publie dans votre CodeArtifact dépôt.

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

   Par exemple :

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

1. Vous pouvez vérifier que le package a été publié et qu'il existe dans le référentiel en vérifiant dans la console ou en utilisant la `aws codeartifact list-packages` commande suivante :

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

   Vous pouvez répertorier la version unique du package à l'aide de la `aws codeartifact list-package-versions` commande suivante :

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

### Publication de CodeArtifact packages avec Curl
<a name="publish-swift-packages-curl"></a>

Bien qu'il soit recommandé d'utiliser la `swift package-registry publish` commande fournie avec Swift 5.9 ou version ultérieure, vous pouvez également utiliser Curl pour publier des packages Swift dans. CodeArtifact

Utilisez la procédure suivante pour publier des packages Swift dans un AWS CodeArtifact dépôt avec Curl.

1. Si ce n'est pas le cas, créez et mettez à jour les variables d'`CODEARTIFACT_REPO`environnement `CODEARTIFACT_AUTH_TOKEN` et en suivant les étapes décrites dans[Configurez le gestionnaire de packages Swift avec CodeArtifact](configure-swift.md).
**Note**  
Le jeton d'autorisation est valide pendant 12 heures. Vous devrez actualiser votre variable d'`CODEARTIFACT_AUTH_TOKEN`environnement avec de nouvelles informations d'identification si 12 heures se sont écoulées depuis sa création.

1. Tout d'abord, si aucun package Swift n'a été créé, vous pouvez le faire en exécutant les commandes suivantes :

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

1. Utilisez la commande Curl suivante pour publier votre package Swift sur : 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. Vous pouvez vérifier que le package a été publié et qu'il existe dans le référentiel en vérifiant dans la console ou en utilisant la `aws codeartifact list-packages` commande suivante :

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

   Vous pouvez répertorier la version unique du package à l'aide de la `aws codeartifact list-package-versions` commande suivante :

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

## Récupération de packages Swift depuis GitHub et republication vers CodeArtifact
<a name="publish-swift-packages-from-github"></a>

Utilisez la procédure suivante pour récupérer un package Swift GitHub et le republier dans un CodeArtifact dépôt.

**Pour récupérer un package Swift GitHub et le republier dans CodeArtifact**

1. Si ce n'est pas le cas, suivez les étapes ci-dessous [Configurez le gestionnaire de packages Swift avec CodeArtifact](configure-swift.md) pour configurer le Swift Package Manager afin d'utiliser votre CodeArtifact référentiel avec les informations d'identification appropriées.
**Note**  
Le jeton d'autorisation généré est valide pendant 12 heures. Vous devrez en créer un nouveau si 12 heures se sont écoulées depuis la création du jeton.

1. Clonez le dépôt git du package Swift que vous souhaitez récupérer et republier à l'aide de la commande suivante`git clone`. Pour plus d'informations sur le clonage de GitHub référentiels, consultez la section [Clonage d'un référentiel dans la documentation](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository). GitHub 

   ```
   git clone repoURL
   ```

1. Accédez au référentiel que vous venez de cloner :

   ```
   cd repoName
   ```

1. Créez le package et publiez-le sur CodeArtifact.

   1. **Recommandé :** Si vous utilisez Swift 5.9 ou une version ultérieure, vous pouvez utiliser la `swift package-registry publish` commande suivante pour créer le package et le publier dans votre CodeArtifact référentiel configuré.

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

      Par exemple :

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

   1. Si vous utilisez une version de Swift antérieure à la version 5.9, vous devez utiliser la `swift archive-source` commande pour créer le package, puis utiliser une commande Curl pour le publier.

      1. Si vous n'avez pas configuré les variables d'`CODEARTIFACT_REPO`environnement `CODEARTIFACT_AUTH_TOKEN` et, ou si cela fait plus de 12 heures que vous ne l'avez pas fait, suivez les étapes décrites dans[Configurer Swift sans la commande de connexion](configure-swift.md#configure-swift-without-login-command).

      1. Créez le package Swift à l'aide de la `swift package archive-source` commande :

         ```
         swift package archive-source
         ```

         En cas de succès, vous le verrez `Created package_name.zip` dans la ligne de commande.

      1. Utilisez la commande Curl suivante pour publier le package Swift sur : 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. Vous pouvez vérifier que le package a été publié et qu'il existe dans le référentiel en vérifiant dans la console ou en utilisant la `aws codeartifact list-packages` commande suivante :

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

   Vous pouvez répertorier la version unique du package à l'aide de la `aws codeartifact list-package-versions` commande suivante :

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