Compartilhar via


Assinar um aplicativo móvel

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Para assinar e provisionar um aplicativo móvel para sistemas operacionais Android ou Apple, é necessário gerenciar certificados de assinatura e perfis de provisionamento da Apple. Este artigo descreve como gerenciar certificados e perfis com segurança para assinar e provisionar seu aplicativo no Azure Pipelines.

Observação

É necessário pelo menos um agente para executar uma build ou versão. Você pode usar um agente de build do Linux, macOS ou Windows hospedado pela Microsoft, ou configurar seu próprio agente. Para saber mais, consulte Agentes de build e versão.

Assinatura de seu aplicativo Android

Siga estas etapas para assinar seu aplicativo Android enquanto mantém seu certificado de autenticação seguro.

Carregar o arquivo do repositório de chaves

  1. Obtenha um arquivo de repositório de chaves que contenha seu certificado de assinatura. A documentação do Android descreve o processo de geração de um arquivo de repositório de chaves e sua chave correspondente.

  2. No Azure Pipelines, acesse Bibliotecas>Arquivos seguros. Selecione + Arquivo seguro e carregue seu arquivo de repositório de chaves para a biblioteca de arquivos seguros. Durante o carregamento, o repositório de chaves é criptografado e armazenado com segurança.

Adicionar a tarefa de assinatura ao pipeline

Adicione a tarefa AndroidSigning@3 ao pipeline YAML após a etapa que cria seu aplicativo. Na tarefa AndroidSigning@3:

  • <apkFiles> é obrigatório e é o caminho e os nomes dos arquivos APK que serão assinados. O padrão é **/*.apk.
  • <apksign> precisa ser true, que é o padrão.
  • <keystore-file> é o nome do arquivo de repositório de chaves transferido por carregamento na biblioteca de arquivos seguros.
  • <apksignerKeystorePassword> é a senha para o arquivo de repositório de chaves não criptografado.
  • <apksignerKeystoreAlias> é o alias de chave para o certificado de autenticação.
  • <apksignerKeyPassword> é a senha da chave associada ao alias especificado.

Você pode definir e usar variáveis no YAML ou 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 build pode assinar seu aplicativo com segurança sem nenhum gerenciamento de certificado no próprio computador de build.

Assinar seu aplicativo Apple iOS, macOS, tvOS ou watchOS

Para assinar e provisionar seu aplicativo, seu build Xcode ou Xamarin.iOS precisa de acesso ao certificado de assinatura P12 e a um ou mais perfis de provisionamento. As etapas a seguir explicam como obter esses arquivos.

Obter seu certificado de assinatura P12

  1. 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:

      1. Vá para Xcode>Preferências>Contas.

      2. Na coluna da esquerda, selecione seu ID Apple.

      3. No lado direito, selecione sua conta pessoal ou de equipe e selecione Gerenciar certificados.

      4. Mantenha a tecla Ctrl pressionada e selecione o certificado que deseja exportar e selecione Exportar certificado no menu.

        Captura de tela da exportação de um certificado usando o Xcode.

      5. Na caixa de diálogo, insira 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.

  2. Carregue o arquivo P12 na biblioteca de arquivos seguros do Azure Pipelines. Durante o upload, seu certificado é criptografado e armazenado com segurança.

  3. No pipeline, vá para a guia Variáveis e adicione uma variável chamada P12password com a senha do certificado como o valor. Certifique-se de selecionar o ícone de cadeado para proteger sua senha e ocultá-la nos logs.

Obter seu perfil de provisionamento

Caso o seu aplicativo não use a assinatura automática, é possível baixar seu perfil de provisionamento de aplicativos 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 que estão instalados no seu Mac. No Xcode, vá para Xcode>Preferências>Contas. Selecione seu ID Apple e sua equipe e então selecione Baixar perfis manuais.

No Azure Pipelines, carregue seu perfil de provisionamento na biblioteca de arquivos seguros. Durante o carregamento, o arquivo é criptografado e armazenado com segurança.

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 build ou pré-instalar os arquivos em um agente de build do macOS.

Instalar o certificado e o perfil durante cada build

Instale o certificado e o perfil durante cada build quando você não tiver acesso duradouro ao agente de build, por exemplo, quando você usa agentes hospedados do macOS. O certificado P12 e o perfil de provisionamento são instalados no início do build e removidos quando o build é concluído.

  • Adicione a tarefa InstallAppleCertificate@2 ao pipeline YAML antes da tarefa do Xcode ou Xamarin.iOS. No código, substitua <secure-file.p12> pelo nome do arquivo .p12 carregado. Use a variável o P12password seguro.

    - task: InstallAppleCertificate@2
        inputs:
          certSecureFile: '<secure-file.p12>'
          certPwd: '$(P12password)'
    

    Observação

    Na tarefa InstallAppleCertificate@2, o parâmetro deleteCert por padrão é true, que remove o certificado após o build.

  • Adicione a tarefa InstallAppleProvisioningProfile@1 ao YAML antes da tarefa do Xcode ou Xamarin.iOS. Substitua <secure-file.mobileprovision> pelo nome do arquivo de perfil de provisionamento.

    - task: InstallAppleProvisioningProfile@1
        inputs:
          provProfileSecureFile: '<secure-file.mobileprovision>'
    

    Observação

    Na tarefa InstallAppleProvisioningProfile@1, o parâmetro removeProfile por padrão é true, que remove o perfil após o build.

Agora, qualquer agente de build pode assinar seu aplicativo com segurança sem nenhum gerenciamento de certificado ou perfil no próprio computador de build.

Pré-instalar o certificado e o perfil em um agente de build do macOS

Em vez de instalar o certificado de assinatura e os perfis de provisionamento durante o build, você pode pré-instalá-los em um agente de build do macOS. Os arquivos ficam disponíveis para uso contínuo por builds. Use esse método somente quando confiar nas pessoas e nos processos que têm acesso às chaves do macOS no computador do agente.

Pré-instalar o certificado P12

  1. Para instalar o certificado P12 nas chaves padrão, execute o comando a seguir em uma janela do Terminal do macOS do computador no agente de build. Substitua <certificate.p12> pelo caminho e pelo nome do arquivo P12. Substitua <password> pela senha de criptografia do arquivo P12.

    sudo security import <certificate.p12> -P <password>
    
  2. Adicione uma nova variável ao pipeline chamada KEYCHAIN_PWD. Defina o valor como a senha para as chaves padrão, que normalmente é a senha do usuário que inicia o agente. Certifique-se de selecionar o ícone de cadeado para proteger esta senha.

Pré-instalar o perfil de provisionamento

  1. Para encontrar o nome completo da sua identidade de assinatura, abra uma janela do Terminal do macOS e digite security find-identity -v -p codesigning. 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 semelhante a (CSSMERR_TP_CERT_REVOKED) após a identidade.

  2. 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 de perfil de provisionamento sem a extensão .mobileprovision.

    sudo cp <profile> ~/Library/MobileDevice/Provisioning Profiles/<UUID>.mobileprovision
    

Adicionar tarefas de assinatura e provisionamento que usam o conjunto de chaves padrão

  • Adicione a tarefa InstallAppleCertificate@2 ao pipeline YAML antes da tarefa do Xcode ou Xamarin.iOS. No código, defina os seguintes valores:

    • certSecureFile: o nome do arquivo uploaded .p12.
    • certPwd: a variável para o P12password seguro.
    • signingIdentity: o nome completo da sua identidade de assinatura.
    • keychain: default, para permitir o acesso às chaves padrão.
    • keychainPassword: a variável KEYCHAIN_PWD.
    • deleteCert: false, para reter o certificado entre os builds.
    - task: InstallAppleCertificate@2
      inputs:
        certSecureFile: '<secure-file.p12>'
        certPwd: '$(P12password)'
        signingIdentity: <full-signing-identity>
        keychain: default
        keychainPassword: `$(KEYCHAIN_PWD)
        deleteCert: false
    
  • Adicione a tarefa InstallAppleProvisioningProfile@1. No código:

    • Defina provProfileSecureFile como o nome do arquivo de perfil de provisionamento.
    • Defina removeProfile como false para que o perfil seja retido entre os builds.
    - task: InstallAppleProvisioningProfile@1
        inputs:
          provProfileSecureFile: '<secure-file.mobileprovision>'
          removeProfile: false
    

O agente de build do macOS agora pode assinar e provisionar com segurança seu aplicativo para todos os builds sem mais gerenciamento de certificado ou perfil.

Fazer referência aos arquivos seguros na tarefa de build do Xcode ou do Xamarin.iOS

Para usar o certificado seguro e o perfil em seus pipelines, defina as configurações a seguir em suas tarefas de build 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 da Apple e Instalar Perfil de Provisionamento da Apple para o certificado e o perfil de provisionamento selecionados.

Para o Xcode:

- task: Xcode@5
  inputs:
    signingOption: 'manual'
    signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
    provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'

Para o Xamarin.iOS:

- task: XamariniOS@2
    inputs:
      solutionFile: '**/*.iOS.csproj'
      signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
      signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'

O agente de build de pipeline agora assina e provisiona seu aplicativo com segurança sem mais gerenciamento de certificado ou perfil no próprio computador de build.

Para saber mais sobre: