

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Consumir e publicar pacotes Swift
<a name="swift-publish-consume"></a>

## Consumindo pacotes Swift de CodeArtifact
<a name="consume-swift-packages"></a>

Use o procedimento a seguir para consumir pacotes Swift de um AWS CodeArtifact repositório.

**Para consumir pacotes Swift de um CodeArtifact repositório**

1. Caso contrário, siga as etapas [Configure o Swift Package Manager com CodeArtifact](configure-swift.md) para configurar o Swift Package Manager para usar seu CodeArtifact repositório com as credenciais adequadas.
**nota**  
O token de autorização gerado é válido por 12 horas. Você precisará criar um novo se tiverem passado 12 horas desde a criação do token.

1. Edite o arquivo `Package.swift` na pasta do projeto do aplicativo para atualizar as dependências do pacote a serem usadas no projeto.

   1. Se o arquivo `Package.swift` não contiver a seção `dependencies`, adicione uma.

   1. Na seção `dependencies` do arquivo `Package.swift`, adicione o pacote que você deseja usar adicionando seu identificador de pacote. O identificador do pacote consiste no escopo e no nome do pacote separados por ponto (.). Consulte o trecho de código em uma etapa posterior para ver um exemplo.
**dica**  
Para encontrar o identificador do pacote, você pode usar o CodeArtifact console. Localize a versão específica do pacote que você deseja usar e consulte as instruções de **Atalho de instalação** na página de versão do pacote.

   1. Se o arquivo `Package.swift` não contiver a seção `targets`, adicione uma.

   1. Na seção `targets`, adicione os destinos que precisarão usar a dependência.

      A seguir há um trecho de exemplo que mostra a configuração das seções `dependencies` e `targets` em um arquivo `Package.swift`:

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

1. Agora que tudo está configurado, use o comando a seguir para baixar as dependências do CodeArtifact pacote.

   ```
   swift package resolve
   ```

## Consumindo pacotes Swift CodeArtifact do Xcode
<a name="consume-swift-packages-xcode"></a>

Use o procedimento a seguir para consumir pacotes Swift de um CodeArtifact repositório no Xcode.

**Para consumir pacotes Swift de um CodeArtifact repositório no Xcode**

1. Caso contrário, siga as etapas [Configure o Swift Package Manager com CodeArtifact](configure-swift.md) para configurar o Swift Package Manager para usar seu CodeArtifact repositório com as credenciais adequadas.
**nota**  
O token de autorização gerado é válido por 12 horas. Você precisará criar um novo se tiverem passado 12 horas desde a criação do token.

1. Adicione os pacotes como uma dependência do projeto no Xcode.

   1. Escolha **Arquivo > Adicionar pacotes**.

   1. Localize o pacote usando a barra de pesquisa. Sua pesquisa deve estar no formato `package_scope.package_name`.

   1. Quando encontrado, escolha o pacote e clique em **Adicionar pacote**.

   1. Depois que o pacote for verificado, escolha os produtos do pacote que você deseja adicionar como dependência e escolha **Adicionar pacote**.

Se você tiver problemas ao usar seu CodeArtifact repositório com o Xcode, consulte [Solução de problemas do Swift](swift-troubleshooting.md) os problemas comuns e as possíveis correções.

## Publicando pacotes Swift em CodeArtifact
<a name="publish-swift-packages"></a>

CodeArtifact recomenda o Swift 5.9 ou posterior e usa o `swift package-registry publish` comando para publicar pacotes Swift. Se você estiver usando uma versão anterior, deverá usar um comando Curl para publicar pacotes do Swift. CodeArtifact

### Publicando CodeArtifact pacotes com o `swift package-registry publish` comando
<a name="publish-swift-packages-publish-command"></a>

Use o procedimento a seguir com o Swift 5.9 ou posterior para publicar pacotes Swift em um CodeArtifact repositório com o Swift Package Manager.

1. Caso contrário, siga as etapas [Configure o Swift Package Manager com CodeArtifact](configure-swift.md) para configurar o Swift Package Manager para usar seu CodeArtifact repositório com as credenciais adequadas.
**nota**  
O token de autorização gerado é válido por 12 horas. Você precisará criar um novo se tiverem passado 12 horas desde a criação do token.

1. Navegue até o diretório do projeto Swift que contém o arquivo `Package.swift` para seu pacote.

1. Para publicar o pacote, execute o seguinte comando `swift package-registry publish`. O comando cria um arquivo de origem do pacote e o publica no seu CodeArtifact repositório.

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

   Por exemplo:

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

1. Você pode confirmar se o pacote foi publicado e existe no repositório acessando o console ou usando o comando `aws codeartifact list-packages` da seguinte forma:

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

   Você pode exibir a versão única do pacote usando o comando `aws codeartifact list-package-versions` da seguinte forma:

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

### Publicando CodeArtifact pacotes com Curl
<a name="publish-swift-packages-curl"></a>

Embora seja recomendável usar o `swift package-registry publish` comando que vem com o Swift 5.9 ou posterior, você também pode usar o Curl para publicar pacotes do Swift no. CodeArtifact

Use o procedimento a seguir para publicar pacotes Swift em um AWS CodeArtifact repositório com Curl.

1. Caso ainda não tenha feito isso, crie e atualize as variáveis de ambiente `CODEARTIFACT_AUTH_TOKEN` e `CODEARTIFACT_REPO` seguindo as etapas em [Configure o Swift Package Manager com CodeArtifact](configure-swift.md).
**nota**  
O token de autorização é válido por 12 horas. Você precisará atualizar a variável de ambiente `CODEARTIFACT_AUTH_TOKEN` com novas credenciais se tiverem passado 12 horas desde que ela foi criada.

1. Primeiramente, se você não tiver um pacote Swift criado, isso pode ser feito executando os seguintes comandos:

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

1. Use o seguinte comando Curl para publicar seu pacote Swift em 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. Você pode confirmar se o pacote foi publicado e existe no repositório acessando o console ou usando o comando `aws codeartifact list-packages` da seguinte forma:

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

   Você pode exibir a versão única do pacote usando o comando `aws codeartifact list-package-versions` da seguinte forma:

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

## Buscando pacotes Swift GitHub e republicando em CodeArtifact
<a name="publish-swift-packages-from-github"></a>

Use o procedimento a seguir para buscar um pacote Swift GitHub e republicá-lo em um CodeArtifact repositório.

**Para obter um pacote Swift GitHub e republicá-lo no CodeArtifact**

1. Caso contrário, siga as etapas [Configure o Swift Package Manager com CodeArtifact](configure-swift.md) para configurar o Swift Package Manager para usar seu CodeArtifact repositório com as credenciais adequadas.
**nota**  
O token de autorização gerado é válido por 12 horas. Você precisará criar um novo se tiverem passado 12 horas desde a criação do token.

1. Clone o repositório Git do pacote Swift que você deseja buscar e republicar usando o seguinte comando `git clone`. Para obter informações sobre a clonagem de GitHub repositórios, consulte [Clonar um repositório](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) na Documentação. GitHub 

   ```
   git clone repoURL
   ```

1. Navegue até o repositório que você acabou de clonar:

   ```
   cd repoName
   ```

1. Crie o pacote e publique-o no CodeArtifact.

   1. **Recomendado:** se você estiver usando o Swift 5.9 ou posterior, poderá usar o `swift package-registry publish` comando a seguir para criar o pacote e publicá-lo no seu CodeArtifact repositório configurado.

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

      Por exemplo:

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

   1. Se você estiver usando uma versão do Swift anterior à 5.9, deverá usar o comando `swift archive-source` para criar o pacote e, em seguida, usar um comando Curl para publicá-lo.

      1. Se as variáveis de ambiente `CODEARTIFACT_AUTH_TOKEN` e `CODEARTIFACT_REPO` não tiverem sido configuradas ou caso já tenham se passado mais de 12 horas desde que você realizou essa configuração, siga as etapas em [Configurar o Swift sem o comando login](configure-swift.md#configure-swift-without-login-command).

      1. Crie o pacote Swift usando o comando `swift package archive-source`:

         ```
         swift package archive-source
         ```

         Se for bem-sucedido, você verá `Created package_name.zip` na linha de comando.

      1. Use o seguinte comando Curl para publicar o pacote Swift em 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. Você pode confirmar se o pacote foi publicado e existe no repositório acessando o console ou usando o comando `aws codeartifact list-packages` da seguinte forma:

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

   Você pode exibir a versão única do pacote usando o comando `aws codeartifact list-package-versions` da seguinte forma:

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