Assinar uma aplicação móvel
Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019
Para assinar e provisionar um aplicativo móvel para sistemas operacionais Android ou Apple, você precisa gerenciar certificados de assinatura e perfis de provisionamento da Apple. Este artigo descreve como gerenciar com segurança certificados e perfis para assinar e provisionar seu aplicativo no Azure Pipelines.
Nota
Você precisa de pelo menos um agente para executar uma compilação ou versão. Você pode usar um agente de compilação Linux, macOS ou Windows hospedado pela Microsoft ou configurar seu próprio agente. Para obter mais informações, consulte Compilar e liberar agentes.
Assine seu aplicativo para Android
Siga estas etapas para assinar seu aplicativo Android enquanto mantém seu certificado de assinatura seguro.
Carregue o arquivo keystore
Obtenha um arquivo keystore que contenha seu certificado de assinatura. A documentação do Android descreve o processo de geração de um arquivo keystore e sua chave correspondente.
No Azure Pipelines, vá para Libraries>Secure files. Selecione + Arquivo seguro e carregue seu arquivo keystore para a biblioteca de arquivos seguros. Durante o upload, seu armazenamento de chaves é criptografado e armazenado com segurança.
Adicionar a tarefa de assinatura ao pipeline
Adicione a tarefa AndroidSigning@3 ao seu pipeline YAML após a etapa que cria seu aplicativo. AndroidSigning@3
Na tarefa:
<apkFiles>
é obrigatório e é o caminho e os nomes dos arquivos APK a serem assinados. A predefinição é**/*.apk
.<apksign>
deve sertrue
, que é o padrão.<keystore-file>
é 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.
Você pode definir e usar variáveis no YAML ou pode definir as variáveis usando a guia Variáveis na interface do usuário do Azure Pipelines e consultá-las no YAML.
variables:
keystore-password: <keystore file password>
key-alias: <key alias for the signing certificater>
key-password: <password for the key associated with the alias>
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)
Agora, qualquer agente de compilação pode assinar seu aplicativo com segurança sem qualquer gerenciamento de certificado na própria máquina de compilação.
Assine seu aplicativo Apple iOS, macOS, tvOS ou watchOS
Para assinar e provisionar seu aplicativo, sua compilação Xcode ou Xamarin.iOS precisa acessar seu certificado de assinatura P12 e um ou mais perfis de provisionamento. As etapas a seguir explicam como obter esses arquivos.
Obtenha o seu 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 Contas de preferências>do Xcode.>
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.
Na caixa de diálogo, digite o nome do certificado, o local para salvar o arquivo e uma senha para proteger o certificado.
Ou use o procedimento descrito em Assinatura do iOS para seguir um processo semelhante usando o aplicativo Acesso às Chaves no macOS ou gerar um certificado de assinatura no Windows.
Carregue seu arquivo P12 na biblioteca de arquivos seguros do Azure Pipelines. Durante o upload, seu certificado é criptografado e armazenado com segurança.
No pipeline, vá para a guia Variáveis e adicione uma variável chamada P12password com a senha do certificado como valor. Certifique-se de selecionar o ícone de cadeado para proteger sua senha e obscurecê-la nos logs.
Obtenha seu perfil de provisionamento
Se a sua aplicação não utilizar a assinatura automática, pode transferir o seu perfil de aprovisionamento de aplicações a partir do portal do Programador 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 Contas de preferências>do Xcode.> Selecione o seu ID Apple e a sua equipa e, em seguida, selecione Transferir perfis manuais.
No Azure Pipelines, carregue seu perfil de provisionamento na biblioteca de arquivos seguros. Durante o carregamento, o seu ficheiro é encriptado e armazenado de forma segura.
Adicionar as tarefas de assinatura e provisionamento ao pipeline
Para assinar e provisionar seu aplicativo, você pode instalar o certificado e o perfil durante cada compilação ou pré-instalar os arquivos em um agente de compilação do macOS.
Instale o certificado e o perfil durante cada compilação
Instale o certificado e o perfil durante cada compilação quando não tiver acesso duradouro ao agente de compilação, por exemplo, quando usar agentes macOS hospedados. O certificado P12 e o perfil de provisionamento são instalados no início da compilação e removidos quando a compilação é concluída.
Adicione a tarefa InstallAppleCertificate@2 ao pipeline YAML antes da tarefa Xcode ou Xamarin.iOS. No código, substitua
<secure-file.p12>
pelo nome do arquivo .p12 carregado. Use a variável para o seguroP12password
.- task: InstallAppleCertificate@2 inputs: certSecureFile: '<secure-file.p12>' certPwd: '$(P12password)'
Nota
Na tarefa, o
InstallAppleCertificate@2
deleteCert
parâmetro assumetrue
como padrão , o que remove o certificado após a compilação.Adicione a tarefa InstallAppleProvisioningProfile@1 ao seu YAML antes da tarefa Xcode ou Xamarin.iOS. Substitua
<secure-file.mobileprovision>
pelo nome do arquivo de perfil de provisionamento.- task: InstallAppleProvisioningProfile@1 inputs: provProfileSecureFile: '<secure-file.mobileprovision>'
Nota
InstallAppleProvisioningProfile@1
Na tarefa, oremoveProfile
parâmetro assumetrue
como padrão , o que remove o perfil após a compilação.
Agora, qualquer agente de compilação pode assinar seu aplicativo com segurança sem qualquer 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
Em vez de instalar o certificado de assinatura e os perfis de provisionamento durante a compilação, você pode pré-instalá-los em um agente de compilação do macOS. Os arquivos ficam então disponíveis para uso continuado por compilações. Use esse método somente quando confiar nas pessoas e processos que têm acesso às chaves do macOS na máquina do agente.
Pré-instalar o certificado P12
Para instalar o certificado P12 no conjunto de chaves padrão, execute o seguinte comando a partir de uma janela do Terminal macOS no agente de compilação. Substitua
<certificate.p12>
pelo caminho e nome do arquivo P12. Substitua<password>
pela senha de criptografia do seu arquivo P12.sudo security import <certificate.p12> -P <password>
Adicione uma nova variável ao seu pipeline chamada KEYCHAIN_PWD. Defina o valor como a senha para o conjunto de chaves padrão, que normalmente é a senha do usuário que inicia o agente. Certifique-se de selecionar o ícone de cadeado para proteger essa senha.
Pré-instalar o perfil de provisionamento
Encontre o nome completo da sua identidade de assinatura abrindo uma janela do Terminal macOS e digitando
security find-identity -v -p codesigning
. Você verá uma lista de identidades de assinatura no formulárioiPhone 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 na máquina do agente, execute o seguinte comando em uma janela do Terminal macOS. Substitua
<profile>
pelo caminho para o arquivo de perfil de provisionamento e 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
Adicione a tarefa InstallAppleCertificate@2 ao pipeline YAML antes da tarefa Xcode ou Xamarin.iOS. 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
: ,default
para permitir o acesso ao porta-chaves padrão.keychainPassword
: AKEYCHAIN_PWD
variável.deleteCert
:false
, para 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 o InstallAppleProvisioningProfile@1 tarefa. No código:
- Defina
provProfileSecureFile
como o nome do seu arquivo de perfil de provisionamento. - Definido
removeProfile
parafalse
que o perfil seja mantido entre compilações.
- task: InstallAppleProvisioningProfile@1 inputs: provProfileSecureFile: '<secure-file.mobileprovision>' removeProfile: false
- Defina
O agente de compilação do macOS agora pode assinar e provisionar seu aplicativo com segurança para todas as compilações sem gerenciamento adicional de certificados ou perfis.
Faça referência aos arquivos seguros na tarefa de compilação Xcode ou Xamarin.iOS
Para usar o certificado e o perfil seguros em seus pipelines, defina as seguintes configurações em suas tarefas de compilação do Xcode ou Xamarin.iOS.
As referências de arquivos seguros nas tarefas de compilação usam variáveis para o signingIdentity
e o provisioningProfileUuid
. Essas variáveis são definidas automaticamente pelas tarefas Instalar certificado Apple e Instalar perfil de provisionamento Apple para o certificado e o perfil de provisionamento selecionados.
Para Xcode:
- task: Xcode@5
inputs:
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
Para Xamarin.iOS:
- task: XamariniOS@2
inputs:
solutionFile: '**/*.iOS.csproj'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'
O agente de compilação de pipeline agora assina e provisiona seu aplicativo com segurança sem mais certificado ou gerenciamento de perfil na própria máquina de compilação.
Conteúdos relacionados
Para mais informações sobre:
- Pipelines para aplicativos Android, consulte Criar, testar e implantar aplicativos Android.
- Pipelines para aplicativos iOS, consulte Criar, testar e implantar aplicativos Xcode.
- Agentes, consulte Agentes do Azure Pipelines.
- Pools de agentes e filas, consulte Criar e gerenciar pools de agentes.
- Variáveis em pipelines, consulte Definir variáveis.
- Solução de problemas de pipeline, consulte Solucionar problemas de execução de pipeline.