

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á.

# Configure o Swift Package Manager com CodeArtifact
<a name="configure-swift"></a>

Para usar o Swift Package Manager para publicar pacotes ou consumir pacotes AWS CodeArtifact, primeiro você precisará configurar as credenciais para acessar seu CodeArtifact repositório. O método recomendado para configurar a CLI do Swift Package Manager com CodeArtifact suas credenciais e o endpoint do repositório é usando o comando. `aws codeartifact login` Você também pode configurar o Swift Package Manager manualmente.

## Configurar o Swift o com o comando login
<a name="configure-swift-login-command"></a>

Use o `aws codeartifact login` comando para configurar o Swift Package Manager com CodeArtifact.

**nota**  
Para usar o comando login, é necessário utilizar o Swift 5.8 ou posterior e o Swift 5.9 ou posterior é recomendado.

O comando `aws codeartifact login` fará o que segue:

1. Obtenha um token de autenticação CodeArtifact e armazene-o em seu ambiente. O modo como as credenciais são armazenadas depende do sistema operacional do ambiente:

   1. **macOS:** uma entrada é criada no aplicativo macOS Chavechain.

   1. **Linux e Windows:** uma entrada é criada no arquivo `~/.netrc`.

   Em todos os sistemas operacionais, se existir uma entrada de credenciais, o comando substituirá a entrada por um token.

1. Busque a URL do endpoint CodeArtifact do repositório e adicione-a ao seu arquivo de configuração do Swift. O comando adiciona o URL do endpoint do repositório ao arquivo de configuração no nível do projeto localizado em `/path/to/project/.swiftpm/configuration/registries.json`.

**nota**  
O comando `aws codeartifact login` aciona os comandos `swift package-registry` que devem ser executados a partir do diretório que contém o arquivo `Package.swift`. Por isso, o comando `aws codeartifact login` deve ser executado dentro do projeto Swift.

**Para configurar o Swift o com o comando login**

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

1. Execute o seguinte comando `aws codeartifact login`.

   Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir `--domain-owner`. Para obter mais informações, consulte [Domínios entre contas](domain-overview.md#domain-overview-cross-account).

   ```
   aws codeartifact login --tool {{swift}} --domain {{my_domain}} \
   --domain-owner {{111122223333}} --repository {{my_repo}} \
   [--namespace {{my_namespace}}]
   ```

A `--namespace` opção configura o aplicativo para consumir pacotes do seu CodeArtifact repositório somente se eles estiverem no namespace designado. [CodeArtifact namespaces](codeartifact-concepts.md#welcome-concepts-package-namespace) são sinônimos de escopos e são usados para organizar o código em grupos lógicos e evitar colisões de nomes que podem ocorrer quando sua base de código inclui várias bibliotecas.

O período de autorização padrão após chamar o `login` é de 12 horas e o `login` deve ser chamado para atualizar o token periodicamente. Para obter mais informações sobre o token de autorização criado com o comando `login`, consulte [Tokens criados com o comando `login`](tokens-authentication.md#auth-token-login).

## Configurar o Swift sem o comando login
<a name="configure-swift-without-login-command"></a>

Embora seja recomendável [configurar o Swift com o comando `aws codeartifact login`](#configure-swift-login-command), você também pode configurar o Swift Package Manager sem o comando login atualizando manualmente a configuração do Swift Package Manager.

No procedimento a seguir, você usará o AWS CLI para fazer o seguinte:

1. Obtenha um token de autenticação CodeArtifact e armazene-o em seu ambiente. O modo como as credenciais são armazenadas depende do sistema operacional do ambiente:

   1. **macOS:** uma entrada é criada no aplicativo macOS Chavechain.

   1. **Linux e Windows:** uma entrada é criada no arquivo `~/.netrc`.

1. Busque o URL do endpoint CodeArtifact do seu repositório.

1. No arquivo de configuração `~/.swiftpm/configuration/registries.json`, adicione uma entrada com o URL do endpoint do repositório e o tipo de autenticação.

**Para configurar o Swift sem o comando login**

1. Em uma linha de comando, use o comando a seguir para buscar um token de CodeArtifact autorização e armazená-lo em uma variável de ambiente.
   + {{my\_domain}}Substitua pelo seu nome de CodeArtifact domínio.
   + {{111122223333}}Substitua pelo ID da AWS conta do proprietário do domínio. Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir `--domain-owner`. Para obter mais informações, consulte [Domínios entre contas](domain-overview.md#domain-overview-cross-account).

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

   ```
   export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain {{my_domain}} --domain-owner {{111122223333}} --query authorizationToken --output text`
   ```

------
#### [ Windows ]
   + Windows (usando o shell de comando padrão):

     ```
     for /f %i in ('aws codeartifact get-authorization-token --domain {{my_domain}} --domain-owner {{111122223333}} --query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i
     ```
   + Janelas PowerShell:

     ```
     $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain {{my_domain}} --domain-owner {{111122223333}} --query authorizationToken --output text
     ```

------

1. Obtenha o endpoint do seu CodeArtifact repositório executando o comando a seguir. O endpoint do repositório é usado para direcionar o Swift Package Manager ao seu repositório para consumir ou publicar pacotes.
   + {{my\_domain}}Substitua pelo seu nome de CodeArtifact domínio.
   + {{111122223333}}Substitua pelo ID da AWS conta do proprietário do domínio. Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir `--domain-owner`. Para obter mais informações, consulte [Domínios entre contas](domain-overview.md#domain-overview-cross-account).
   + {{my\_repo}}Substitua pelo nome CodeArtifact do seu repositório.

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

   ```
   export CODEARTIFACT_REPO=`aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format swift --query repositoryEndpoint --output text`
   ```

------
#### [ Windows ]
   + Windows (usando o shell de comando padrão):

     ```
     for /f %i in ('aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format swift --query repositoryEndpoint --output text') do set CODEARTIFACT_REPO=%i
     ```
   + Janelas PowerShell:

     ```
     $env:CODEARTIFACT_REPO = aws codeartifact get-repository-endpoint --domain {{my_domain}} --domain-owner {{111122223333}} --repository {{my_repo}} --format swift --query repositoryEndpoint --output text
     ```

------

   O URL a seguir é um exemplo de endpoint de repositório.

   ```
   https://{{my_domain}}-111122223333.d.codeartifact.{{us-west-2}}.amazonaws.com/swift/{{my_repo}}/
   ```
**nota**  
Para usar um endpoint de pilha dupla, use o endpoint `codeartifact.{{region}}.on.aws`.
**Importante**  
Você deve incluir `login` ao final do endpoint de URL do repositório quando usado para configurar o Swift Package Manager. Isso é feito para você nos comandos deste procedimento.

1. Com esses dois valores armazenados em variáveis de ambiente, envie-os ao Swift usando o comando `swift package-registry login` da seguinte forma:

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

   ```
   swift package-registry login ${CODEARTIFACT_REPO}login --token ${CODEARTIFACT_AUTH_TOKEN}
   ```

------
#### [ Windows ]
   + Windows (usando o shell de comando padrão):

     ```
     swift package-registry login %CODEARTIFACT_REPO%login --token %CODEARTIFACT_AUTH_TOKEN%
     ```
   + Janelas PowerShell:

     ```
     swift package-registry login $Env:CODEARTIFACT_REPO+"login" --token $Env:CODEARTIFACT_AUTH_TOKEN
     ```

------

1. Em seguida, atualize o registro do pacote usado pelo seu aplicativo para que qualquer dependência seja retirada do seu CodeArtifact repositório. Esse comando deve ser executado no diretório do projeto em que você está tentando resolver a dependência do pacote:

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

   ```
   $ swift package-registry set ${CODEARTIFACT_REPO} [--scope {{my_scope}}]
   ```

------
#### [ Windows ]
   + Windows (usando o shell de comando padrão):

     ```
     $ swift package-registry set %CODEARTIFACT_REPO% [--scope {{my_scope}}]
     ```
   + Janelas PowerShell:

     ```
     $ swift package-registry set $Env:CODEARTIFACT_REPO [--scope {{my_scope}}]
     ```

------

   A `--scope` opção configura o aplicativo para consumir pacotes do seu CodeArtifact repositório somente se eles estiverem no escopo designado. Os escopos são sinônimos de [CodeArtifact namespaces](codeartifact-concepts.md#welcome-concepts-package-namespace) e são usados para organizar o código em grupos lógicos e evitar colisões de nomes que podem ocorrer quando sua base de código inclui várias bibliotecas.

1. Você pode confirmar se a configuração foi realizada corretamente ao acessar o conteúdo do arquivo `.swiftpm/configuration/registries.json` no nível do projeto executando o seguinte comando no diretório do projeto:

   ```
   $ 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
   }
   ```

Agora que você configurou o Swift Package Manager com seu CodeArtifact repositório, você pode usá-lo para publicar e consumir pacotes Swift de e para ele. Para obter mais informações, consulte [Consumir e publicar pacotes Swift](swift-publish-consume.md).