

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Consumir y publicar paquetes de Swift
<a name="swift-publish-consume"></a>

## Consumir paquetes Swift desde CodeArtifact
<a name="consume-swift-packages"></a>

Utilice el siguiente procedimiento para consumir paquetes Swift de un AWS CodeArtifact repositorio.

**Para consumir paquetes Swift de un CodeArtifact repositorio**

1. Si no lo has hecho, sigue los pasos que se indican [Configure el Swift Package Manager con CodeArtifact](configure-swift.md) a continuación para configurar el Swift Package Manager para que utilice tu CodeArtifact repositorio con las credenciales adecuadas.
**nota**  
El token de autorización generado es válido durante 12 horas. Deberá crear uno nuevo si han pasado 12 horas desde que se creó el token.

1. Edite el archivo `Package.swift` en la carpeta del proyecto de su aplicación para actualizar las dependencias del paquete que utilizará su proyecto.

   1. Si el archivo `Package.swift` no contiene una sección `dependencies`, añada una.

   1. En la sección `dependencies` del archivo `Package.swift`, añada el paquete que desee utilizar añadiendo su identificador de paquete. El identificador del paquete consiste en el ámbito y el nombre del paquete separados por un punto. Consulte el fragmento de código que sigue a un paso posterior para ver un ejemplo.
**sugerencia**  
Para encontrar el identificador del paquete, puedes usar la CodeArtifact consola. Busque la versión específica del paquete que desea utilizar y consulte las instrucciones de **acceso directo de instalación** en la página de la versión del paquete.

   1. Si el archivo `Package.swift` no contiene una sección `targets`, añada una.

   1. En la sección `targets`, añada los destinos que necesitarán usar la dependencia.

      El siguiente fragmento es un ejemplo de fragmento que muestra las secciones `dependencies` y `targets` configuradas en un archivo `Package.swift`:

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

1. Ahora que todo está configurado, usa el siguiente comando para descargar las dependencias del paquete. CodeArtifact

   ```
   swift package resolve
   ```

## Consumir paquetes de Swift desde CodeArtifact Xcode
<a name="consume-swift-packages-xcode"></a>

Utilice el siguiente procedimiento para consumir paquetes Swift de un CodeArtifact repositorio en Xcode.

**Para consumir paquetes Swift de un CodeArtifact repositorio en Xcode**

1. Si no lo has hecho, sigue los pasos que se indican [Configure el Swift Package Manager con CodeArtifact](configure-swift.md) a continuación para configurar el Swift Package Manager para que utilice tu CodeArtifact repositorio con las credenciales adecuadas.
**nota**  
El token de autorización generado es válido durante 12 horas. Deberá crear uno nuevo si han pasado 12 horas desde que se creó el token.

1. Agregue los paquetes como una dependencia en su proyecto en Xcode.

   1. Seleccione **Archivo > Añadir paquetes**.

   1. Busque su paquete usando la barra de búsqueda. Su búsqueda debe estar en la forma `package_scope.package_name`.

   1. Una vez encontrado, elija el paquete y elija **Añadir paquete**.

   1. Una vez que se verifique el paquete, elija los productos del paquete que desea agregar como dependencia y elija **Agregar paquete**.

Si tienes problemas al usar tu CodeArtifact repositorio con Xcode, consulta [Solución de problemas de Swift](swift-troubleshooting.md) los problemas más comunes y las posibles soluciones.

## Publicar paquetes de Swift en CodeArtifact
<a name="publish-swift-packages"></a>

CodeArtifact recomienda Swift 5.9 o posterior y usar el `swift package-registry publish` comando para publicar paquetes de Swift. Si utiliza una versión anterior, debe utilizar un comando Curl para publicar los paquetes de Swift en ella. CodeArtifact

### Publicar CodeArtifact paquetes con el comando `swift package-registry publish`
<a name="publish-swift-packages-publish-command"></a>

Utilice el siguiente procedimiento con Swift 5.9 o posterior para publicar paquetes de Swift en un CodeArtifact repositorio con Swift Package Manager.

1. Si no lo has hecho, sigue los pasos que se indican [Configure el Swift Package Manager con CodeArtifact](configure-swift.md) a continuación para configurar el Swift Package Manager para que utilice tu CodeArtifact repositorio con las credenciales adecuadas.
**nota**  
El token de autorización generado es válido durante 12 horas. Deberá crear uno nuevo si han pasado 12 horas desde su creación.

1. Navegue hasta el directorio del proyecto Swift que contiene el archivo `Package.swift` de su paquete.

1. Ejecute el comando `swift package-registry publish` siguiente para publicar el paquete. El comando crea un archivo fuente del paquete y lo publica en su CodeArtifact repositorio.

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

   Por ejemplo:

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

1. Puede confirmar que el paquete se publicó y existe en el repositorio comprobándolo en la consola o usando el comando `aws codeartifact list-packages` de la siguiente manera:

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

   Puede enumerar la versión única del paquete usando el comando `aws codeartifact list-package-versions` de la siguiente manera:

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

### Publicar CodeArtifact paquetes con Curl
<a name="publish-swift-packages-curl"></a>

Si bien se recomienda usar el `swift package-registry publish` comando que viene con Swift 5.9 o una versión posterior, también puedes usar Curl para publicar paquetes de Swift en él. CodeArtifact

Utilice el siguiente procedimiento para publicar paquetes de Swift en un AWS CodeArtifact repositorio con Curl.

1. Si no lo ha hecho, cree y actualice las variables de entorno `CODEARTIFACT_AUTH_TOKEN` y `CODEARTIFACT_REPO` siguiendo los pasos que se indican en [Configure el Swift Package Manager con CodeArtifact](configure-swift.md).
**nota**  
El token de autorización es válido durante 12 horas. Deberá actualizar la variable de entorno `CODEARTIFACT_AUTH_TOKEN` con nuevas credenciales si han pasado 12 horas desde su creación.

1. En primer lugar, si no tiene un paquete Swift creado, puede hacerlo ejecutando los siguientes comandos:

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

1. Usa el siguiente comando Curl para publicar tu paquete Swift en: 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. Puede confirmar que el paquete se publicó y existe en el repositorio comprobándolo en la consola o usando el comando `aws codeartifact list-packages` de la siguiente manera:

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

   Puede enumerar la versión única del paquete usando el comando `aws codeartifact list-package-versions` de la siguiente manera:

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

## Extraer paquetes de Swift GitHub y volver a publicarlos en CodeArtifact
<a name="publish-swift-packages-from-github"></a>

Utilice el siguiente procedimiento para obtener un paquete Swift de un repositorio GitHub y volver a publicarlo en él. CodeArtifact 

**Para obtener un paquete de Swift GitHub y volver a publicarlo en CodeArtifact**

1. Si no lo has hecho, sigue los pasos que se indican [Configure el Swift Package Manager con CodeArtifact](configure-swift.md) a continuación para configurar el Swift Package Manager para que utilice tu CodeArtifact repositorio con las credenciales adecuadas.
**nota**  
El token de autorización generado es válido durante 12 horas. Deberá crear uno nuevo si han pasado 12 horas desde que se creó el token.

1. Clone el repositorio git del paquete Swift que desea recuperar y volver a publicar con el comando `git clone` siguiente. Para obtener información sobre la clonación de GitHub repositorios, consulta Cómo [clonar un repositorio](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) en los documentos. GitHub 

   ```
   git clone repoURL
   ```

1. Navegue hasta el repositorio que acaba de clonar:

   ```
   cd repoName
   ```

1. Crea el paquete y publícalo en. CodeArtifact

   1. **Recomendado:** Si utilizas Swift 5.9 o una versión posterior, puedes usar el siguiente `swift package-registry publish` comando para crear el paquete y publicarlo en el CodeArtifact repositorio que hayas configurado.

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

      Por ejemplo:

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

   1. si utiliza una versión de Swift anterior a la 5.9, debe usar el comando `swift archive-source` para crear el paquete y luego usar un comando Curl para publicarlo.

      1. Si no ha configurado las variables de entorno `CODEARTIFACT_AUTH_TOKEN` y `CODEARTIFACT_REPO` o han pasado más de 12 horas desde que lo hizo, siga los pasos que se indican en [Configurar Swift sin el comando login](configure-swift.md#configure-swift-without-login-command).

      1. Cree el paquete Swift mediante el siguiente comando `swift package archive-source`:

         ```
         swift package archive-source
         ```

         Si tiene éxito, verá `Created package_name.zip` en la línea de comandos.

      1. Usa el siguiente comando Curl para publicar el paquete Swift en: 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. Puede confirmar que el paquete se publicó y existe en el repositorio comprobándolo en la consola o usando el comando `aws codeartifact list-packages` de la siguiente manera:

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

   Puede enumerar la versión única del paquete usando el comando `aws codeartifact list-package-versions` de la siguiente manera:

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