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á.
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
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:
-
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:
macOS: uma entrada é criada no aplicativo macOS Chavechain.
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.
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
Navegue até o diretório do projeto Swift que contém o arquivo
Package.swift
do projeto.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.aws codeartifact login --tool
swift
--domainmy_domain
\ --domain-owner111122223333
--repositorymy_repo
\ [--namespacemy_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 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.
Configurar o Swift sem o comando login
Embora seja recomendável configurar o Swift com o comando aws codeartifact login, 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:
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:
macOS: uma entrada é criada no aplicativo macOS Chavechain.
Linux e Windows: uma entrada é criada no arquivo
~/.netrc
.
Busque o URL do endpoint CodeArtifact do seu repositório.
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
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.
export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain
my_domain
--domain-owner111122223333
--query authorizationToken --output text`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.my_repo
Substitua pelo nome CodeArtifact do seu repositório.
export CODEARTIFACT_REPO=`aws codeartifact get-repository-endpoint --domain
my_domain
--domain-owner111122223333
--repositorymy_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.awsImportante
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.Com esses dois valores armazenados em variáveis de ambiente, envie-os ao Swift usando o comando
swift package-registry login
da seguinte forma:swift package-registry login ${CODEARTIFACT_REPO}login --token ${CODEARTIFACT_AUTH_TOKEN}
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:
$ swift package-registry set ${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 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.-
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.