Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022
Este artigo descreve como o Azure Pipelines gerencia certificados e perfis com segurança para assinatura e provisionamento de aplicativos móveis. Para assinar e provisionar um aplicativo móvel, os pipelines devem fornecer certificados de assinatura para sistemas operacionais Android ou Apple e perfis de provisionamento para a Apple.
Assinatura de aplicativos Android
O processo a seguir assina um aplicativo Android enquanto mantém o certificado de assinatura seguro.
Obter o ficheiro keystore
Siga a documentação do Android para gerar um arquivo keystore e sua chave correspondente. O arquivo keystore contém o certificado de assinatura.
Nas > de Pipelines do Azure, em Arquivos seguros, selecione + Arquivo seguro e carregue o arquivo keystore na biblioteca de arquivos seguros. Durante o upload, o armazenamento de chaves é criptografado e armazenado com segurança.
Adicionar a tarefa de assinatura ao pipeline
No pipeline YAML de uma aplicação Android, defina as variáveis keystore-password, key-alias, e key-password. Como alternativa, pode definir as variáveis usando a UI Variáveis de pipeline.
variables:
keystore-password: <keystore file password>
key-alias: <key alias for the signing certificater>
key-password: <password for the key associated with the alias>
Adicione a tarefa AndroidSigning@3 ao pipeline após a etapa de compilação. Na tarefa AndroidSigning@3:
-
<apkFiles>é o caminho e o nome necessários do arquivo APK para assinar. O valor predefinido é**/*.apk. -
<apksign>deve sertrue, que é o padrão. -
<apksignerKeystoreFile>é o nome do arquivo keystore carregado na biblioteca de arquivos seguros. -
<apksignerKeystorePassword>é a senha para o arquivo keystore não criptografado. -
<apksignerKeystoreAlias>é o alias de chave para o certificado de assinatura. -
<apksignerKeyPassword>é a senha da chave associada ao alias especificado.
steps:
- task: AndroidSigning@3
displayName: 'Signing and aligning APK file(s) **/*.apk'
inputs:
apkFiles: '**/*.apk'
apksign: true
apksignerKeystoreFile: <keystore-filename.keystore>
apksignerKeystorePassword: $(keystore-password)
apksignerKeystoreAlias: $(key-alias)
apksignerKeyPassword: $(key-password)
Qualquer agente de compilação agora pode assinar o aplicativo com segurança sem qualquer gerenciamento de certificado na própria máquina de compilação.
Assinatura de aplicativos Apple iOS, macOS, tvOS ou watchOS
Para assinar e provisionar um aplicativo da Apple, a compilação do Xcode precisa acessar o certificado de assinatura P12 e um ou mais perfis de provisionamento.
Obter o certificado de assinatura P12
Exporte seu certificado de assinatura de desenvolvimento ou distribuição para um arquivo .p12 usando o Xcode ou o aplicativo Keychain Access no macOS. Para exportar usando o Xcode:
Vá para Xcode>Preferências>Contas.
Na coluna da esquerda, selecione o seu ID Apple.
No lado direito, selecione sua conta pessoal ou de equipe e selecione Gerenciar certificados.
Ctrl+Selecione o certificado que deseja exportar e selecione Exportar certificado no menu.
Insira o nome do certificado, um local para salvar o arquivo e uma senha para proteger o certificado.
Para exportar usando o aplicativo Acesso às Chaves no macOS ou para gerar um certificado de assinatura no Windows, use o procedimento descrito em Assinatura do iOS.
Carregue o arquivo P12 e adicione a variável de senha
Em Bibliotecas>Arquivos seguros dos Pipelines do Azure, selecione + Arquivo seguro e carregue o arquivo P12 na biblioteca de arquivos seguros do Azure Pipelines. Durante o upload, o certificado é criptografado e armazenado com segurança.
Na interface do usuário Variáveis para o pipeline de compilação do aplicativo, adicione uma variável chamada P12password com a senha do certificado como o valor. Selecione o ícone de cadeado para proteger a senha e obscurecê-la nos logs.
Obter o perfil de provisionamento
Se o aplicativo não usar a assinatura automática, baixe o perfil de provisionamento do aplicativo no portal do desenvolvedor da Apple. Para obter mais informações, consulte Editar, baixar ou excluir perfis de provisionamento.
Você também pode usar o Xcode para acessar perfis de provisionamento instalados no seu Mac. No Xcode, vá para Xcode>Preferências>Contas. Selecione o seu ID Apple e a sua equipa e, em seguida, selecione Transferir perfis manuais.
No Azure Pipelines, carregue o perfil de provisionamento na biblioteca de arquivos seguros. Durante o carregamento, o ficheiro é encriptado e armazenado de forma segura.
Adicionar tarefas de assinatura e provisionamento ao fluxo de processamento
Você precisa de pelo menos uma máquina de agente para executar um pipeline de compilação ou liberação do Azure Pipelines. Você pode usar agentes hospedados pela Microsoft ou configurar agentes auto-hospedados. Para obter mais informações, veja Agentes do Azure Pipelines.
Para assinatura e provisionamento de aplicativos Apple em agentes macOS hospedados, ou se você não quiser permitir o acesso ao conjunto de chaves do agente, poderá instalar o certificado e os perfis necessários durante cada compilação. Se você usa um agente auto-hospedado e confia nas pessoas e processos que podem acessar o conjunto de chaves do agente, você pode pré-instalar o certificado e os perfis no agente de compilação do macOS.
Instale o certificado e o perfil durante cada compilação
Se você não tiver acesso duradouro ao agente de compilação, por exemplo, ao usar agentes hospedados pela Microsoft, poderá instalar o certificado e o perfil durante cada compilação. O pipeline instala o certificado P12 e o perfil de provisionamento no início de cada compilação e os remove quando a compilação é concluída.
No pipeline de compilação YAML para o aplicativo, adicione a tarefa InstallAppleCertificate@2 antes da tarefa Xcode@5 . No código, substitua <secure-file.p12> pelo nome do arquivo .p12 carregado. Para certPwd, use a variável segura P12password que você criou.
- task: InstallAppleCertificate@2
inputs:
certSecureFile: '<secure-file.p12>'
certPwd: '$(<P12password>)'
Adicione também a tarefa InstallAppleProvisioningProfile@1 ao pipeline antes da tarefa Xcode@5 . Substitua <secure-file.mobileprovision> pelo nome do arquivo de perfil de provisionamento.
- task: InstallAppleProvisioningProfile@1
inputs:
provProfileSecureFile: '<secure-file.mobileprovision>'
Nota
Nas tarefas InstallAppleCertificate@2 e InstallAppleProvisioningProfile@1, o parâmetro removeProfile assume true como padrão, o que remove o certificado e o perfil após cada compilação.
Agora, qualquer agente de compilação pode assinar o aplicativo com segurança sem precisar de nenhum certificado ou gerenciamento de perfil na própria máquina de compilação.
Pré-instalar o certificado e o perfil em um agente de compilação do macOS
Como alternativa, você pode pré-instalar o certificado de assinatura e os perfis de provisionamento em agentes de compilação do macOS auto-hospedados para uso contínuo por compilações. Use esse método somente quando confiar nas pessoas e processos que têm acesso às chaves do macOS nas máquinas do agente.
Adicionar a variável de senha do porta-chaves ao pipeline
Adicione uma nova variável ao pipeline de compilação chamado KEYCHAIN_PWD. Defina o valor como a senha padrão das chaves do macOS, que normalmente é a senha do usuário que inicia o agente. Selecione o ícone de cadeado para proteger esta palavra-passe.
Instalar o certificado P12 no agente
Para instalar o certificado P12 no conjunto de chaves padrão, execute o seguinte comando a partir de uma janela do Terminal macOS na máquina do agente. Substitua <certificate.p12> pelo caminho e nome do arquivo P12 e substitua <password> pela senha de criptografia do arquivo P12.
sudo security import <certificate.p12> -P <password>
Instalar o perfil de provisionamento no agente
Encontre o nome completo da sua identidade de assinatura inserindo security find-identity -v -p codesigning numa janela do Terminal macOS. Você verá uma lista de identidades de assinatura no formulário iPhone Developer/Distribution: Developer Name (ID). Se uma identidade for inválida, você verá algo como (CSSMERR_TP_CERT_REVOKED) depois da identidade.
Para instalar o perfil de provisionamento no agente, execute o seguinte comando na janela do Terminal do macOS. Substitua <profile> pelo caminho para o arquivo de perfil de provisionamento. Substitua <UUID> pelo UUID do perfil de provisionamento, que é o nome do arquivo do perfil de provisionamento sem a .mobileprovision extensão.
sudo cp <profile> ~/Library/MobileDevice/Provisioning Profiles/<UUID>.mobileprovision
Adicionar tarefas de assinatura e provisionamento que usam as chaves padrão
No pipeline de construção YAML, adicione a tarefa InstallAppleCertificate@2 antes da tarefa Xcode@5 . No código, defina os seguintes valores:
-
certSecureFile: O nome do ficheiro .p12 carregado. -
certPwd: A variável para o seguroP12password. -
signingIdentity: O nome completo da sua identidade de assinatura. -
keychain:defaultpara permitir o acesso ao porta-chaves padrão. -
keychainPassword: AKEYCHAIN_PWDvariável. -
deleteCert:falsepara manter o certificado entre compilações.
- task: InstallAppleCertificate@2
inputs:
certSecureFile: '<secure-file.p12>'
certPwd: '$(P12password)'
signingIdentity: <full-signing-identity>
keychain: default
keychainPassword: `$(KEYCHAIN_PWD)
deleteCert: false
Adicione também a tarefa InstallAppleProvisioningProfile@1 antes da tarefa Xcode@5 . No código:
- Defina
provProfileSecureFilecomo o nome do arquivo de perfil de provisionamento. - Defina
removeProfilecomofalsepara manter o perfil entre compilações.
- task: InstallAppleProvisioningProfile@1
inputs:
provProfileSecureFile: '<secure-file.mobileprovision>'
removeProfile: false
O agente de compilação do macOS agora pode assinar e provisionar o aplicativo com segurança para todas as compilações sem precisar de mais certificados ou gerenciamento de perfil.
Configurar a tarefa de compilação do Xcode para fazer referência aos arquivos seguros
A tarefa Compilação do Xcode (Xcode@5) refere-se ao signingIdentity e ao provisioningProfileUuid utilizando variáveis. Essas variáveis são definidas automaticamente para o certificado selecionado e o perfil de provisionamento pelas tarefas anteriores Instalar certificado Apple e Instalar perfil de provisionamento Apple .
Adicione o seguinte código à tarefa pipeline Xcode build (Xcode@5):
- task: Xcode@5
inputs:
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
O agente de compilação do pipeline agora assina e provisiona o seu aplicativo com segurança sem a necessidade adicional de gestão de certificados ou perfis na máquina de compilação ou no pipeline de compilação.