Assinar seu aplicativo móvel

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

Ao desenvolver um aplicativo para sistemas operacionais Android ou Apple, você precisará gerenciar certificados de assinatura e, no caso de aplicativos da Apple, perfis de provisionamento. Este artigo descreve como gerenciá-los com segurança para assinar e provisionar seu aplicativo.

Dica

Use um agente de build do Linux, macOS ou Windows hospedado pela Microsoft ou configure seu agente. Confira Agentes de build e versão.

Este artigo cobre:

Assinatura de seu aplicativo Android

Siga estas etapas para assinar seu aplicativo Android mantendo seu certificado de autenticação seguro:

  1. Primeiro, 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. Crie seu pipeline de build com base no modelo de build do Android ou do Xamarin.Android. Ou, se você já tiver um pipeline de build, adicione a tarefa de Assinatura do Android após a tarefa que cria seu APK.

  3. Localize a caixa de seleção assinar a APK da tarefa Assinatura do Android e habilitá-la.

  4. Ao lado do campo de arquivo do Repositório de Chaves, selecione o ícone de configurações e carregue o arquivo do repositório de chaves na biblioteca arquivos seguros. Durante o upload, o repositório de chaves será criptografado e armazenado com segurança.

  5. Depois que o repositório de chaves tiver sido carregado na biblioteca Arquivos Seguros, selecione-o na lista suspensa de arquivos do Repositório de Chaves.

  6. Vá para a guia Variáveis e adicione as variáveis a seguir. Na coluna Valor, insira a senha do Repositório de Chaves, o alias de chave e a senha da chave.

    • keystore-password: senha para o arquivo de repositório de chaves não criptografado. Selecione o ícone bloquear. Isso protegerá sua senha e a obscurecerá nos logs.

    • key-alias: o alias de chave para o certificado de assinatura gerado.

    • chave-senha: a senha da chave associada ao alias especificado. Novamente, selecione o ícone bloquear.

      Variáveis de assinatura do Android

  7. Volte para a guia Tarefas e faça referência aos nomes das variáveis recém-criadas nas opções de assinatura.

    Valores de entrada de assinatura do Android

Salve o pipeline de build e você está pronto! Agora, qualquer agente de build poderá 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 que seu build Xcode ou Xamarin.iOS assine e provisione seu aplicativo, ele precisa de acesso ao certificado de assinatura P12 e a um ou mais perfis de provisionamento. As seções a seguir explicam como obter esses arquivos.

Obter seu certificado de assinatura P12

Depois de criar seu certificado de assinatura de desenvolvimento ou distribuição, exporte-o para um .p12 arquivo usando o Xcode ou o aplicativo keychain Access no macOS.

  1. Para exportar usando xcode 8 ou inferior, vá para Xcode>Preferências...>Contas e selecione sua conta de Desenvolvedor da Apple.

  2. Selecione Exibir Detalhes..., clique com o botão direito do mouse na identidade de assinatura que você deseja exportar e selecione Exportar....

  3. Insira um nome de arquivo e uma senha. Anote a senha, pois você precisará dela mais tarde.

    Certificado de Exportação do Xcode

  4. Como alternativa, siga um processo semelhante usando o aplicativo Keychain Access no macOS ou gere um certificado de autenticação no Windows. Use o procedimento descrito neste artigo se preferir esse método.

Obter seu perfil de provisionamento

Você pode baixar seu perfil de provisionamento de aplicativos no portal do Desenvolvedor da Apple, a menos que seu aplicativo use a assinatura automática. Saiba como baixar um perfil de provisionamento no portal do Desenvolvedor da Apple.

Você também pode usar o Xcode para acessar aqueles que estão instalados em seu Mac.

  1. Usando Xcode 8 ou inferior, vá para Xcode>Preferências...>Contas e selecione sua conta de Desenvolvedor da Apple.

  2. Clique com o botão direito do mouse no perfil de provisionamento que você deseja usar e selecione Mostrar no Localizador.

  3. Copie o arquivo realçado do Finder para outro local e dê a ele um nome de arquivo descritivo.

    Exibição do Xcode no Localizador

Configurar a compilação

Há duas maneiras recomendadas para seu build acessar certificados de assinatura e perfis de provisionamento para assinar e provisionar seu aplicativo:

  1. Instalando-os durante o build
  2. Pré-instalando-os em um agente de build do macOS

Escolha uma das guias abaixo para obter detalhes.

Use esse método quando você não tiver acesso duradouro ao agente de build, como os agentes do macOS hospedados. O certificado P12 e o perfil de provisionamento são instalados no início do build e removidos quando o build é concluído.

Instalar o certificado P12 durante o build

Editor de visual
  1. Adicione a tarefa Instalar o Certificado da Apple ao seu build antes da tarefa Xcode ou Xamarin.iOS.
  2. Ao lado do campo Certificado (P12), selecione o ícone de configurações e carregue o arquivo P12 na biblioteca Arquivos Seguros. Durante o upload, seu certificado será criptografado e armazenado com segurança.
  3. Depois que o certificado tiver sido carregado na biblioteca Arquivos Seguros, selecione-o na lista suspensa Certificado (P12).
  4. Vá para a guia Variáveis e adicione uma variável chamada P12password. Defina seu valor como a senha do seu certificado. Selecione o ícone bloquear. Isso protegerá sua senha e a obscurecerá nos logs.
  5. Volte para a guia Tarefas . Nas configurações da tarefa Instalar Certificado da Apple, faça referência à variável recém-criada no campo Senha do certificado (P12) como: $(P12password)
YAML de exemplo
  1. Carregue o arquivo P12 na biblioteca Arquivos Seguros. Durante o upload, seu certificado será criptografado e armazenado com segurança.

  2. Vá para a guia Variáveis e adicione uma variável chamada P12password. Defina seu valor como a senha do seu certificado. Selecione o ícone bloquear. Isso protegerá sua senha e a obscurecerá nos logs.

  3. Adicione a tarefa Instalar o Certificado da Apple ao YAML antes da tarefa Xcode ou Xamarin.iOS:

    - task: InstallAppleCertificate@2
        inputs:
          certSecureFile: 'my-secure-file.p12' # replace my-secure-file.p12 with the name of your P12 file.
          certPwd: '$(P12password)'
    

Instalar o perfil de provisionamento durante o build

Editor de visual
  1. Adicione a tarefa Instalar o Perfil de Provisionamento da Apple ao seu build antes da tarefa Xcode ou Xamarin.iOS.
  2. Para a opção Localização do perfil de provisionamento, escolha Arquivos Seguros (em YAML, secureFiles).
  3. Ao lado do campo Perfil de provisionamento , selecione o ícone de configurações e carregue o arquivo de perfil de provisionamento na biblioteca Arquivos Seguros. Durante o upload, seu certificado será criptografado e armazenado com segurança.
  4. Depois que o certificado tiver sido carregado na biblioteca Arquivos Seguros, selecione-o na lista suspensa Perfil de provisionamento.
  5. Habilite a caixa de seleção rotulada Remover perfil após o build. Isso garantirá que o perfil de provisionamento não seja deixado no computador do agente.
YAML de exemplo
  1. Carregue seu perfil de provisionamento na Biblioteca de Arquivos Seguros. Durante o upload, seu certificado será criptografado e armazenado com segurança.

  2. Adicione a tarefa Instalar o Perfil de Provisionamento da Apple ao YAML antes da tarefa Xcode ou Xamarin.iOS:

    - task: InstallAppleProvisioningProfile@1
        inputs:
          provProfileSecureFile: 'my-provisioning-profile.mobileprovision' # replace my-provisioning-profile.mobileprovision with the name of your provisioning profile file.
    

    [OBSERVAÇÃO] Remova o perfil após o padrão de build como true.

Fazer referência aos arquivos em sua tarefa do Xcode

Editor de visual
  1. Selecione a tarefa Xcode.
  2. Para a opção Estilo de assinatura, escolha Assinatura manual.
  3. No campo Identidade de assinatura, insira $(APPLE_CERTIFICATE_SIGNING_IDENTITY). Essa variável é definida automaticamente pela tarefa Instalar Certificado da Apple para o certificado selecionado.
  4. No campo UUID do perfil de provisionamento, insira $(APPLE_PROV_PROFILE_UUID). Essa variável é definida automaticamente pela tarefa Instalar Perfil de Provisionamento da Apple para o perfil de provisionamento selecionado.
YAML de exemplo
- task: Xcode@5
  inputs:
    signingOption: 'manual'
    signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
    provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'

Fazer referência aos arquivos em sua tarefa do Xamarin.iOS

Editor de visual
  1. Selecione a tarefa Xamarin.iOS.
  2. Para a opção Substituir usando, escolha Identificadores.
  3. No campo Identidade de assinatura, insira $(APPLE_CERTIFICATE_SIGNING_IDENTITY). Essa variável é definida automaticamente pela tarefa Instalar Certificado da Apple para o certificado selecionado.
  4. No campo UUID do perfil de provisionamento, insira $(APPLE_PROV_PROFILE_UUID). Essa variável é definida automaticamente pela tarefa Instalar Perfil de Provisionamento da Apple para o perfil de provisionamento selecionado.
YAML de exemplo
- task: XamariniOS@2
    inputs:
      solutionFile: '**/*.iOS.csproj'
      signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
      signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'

Salve o pipeline de build e você está pronto! O agente de build agora poderá assinar e provisionar seu aplicativo com segurança.

Perguntas frequentes

Preciso de um agente?

Você precisa de pelo menos um agente para executar seu build ou versão.

Estou tendo problemas. Como posso solucioná-los?

Confira Solucionar problemas de build e versão.

Não consigo selecionar um pool de agentes padrão e não consigo enfileirar meu build ou versão. Como corrigir isso?

Confira Pools de agentes.

Falha da tarefa de push do NuGet com o seguinte erro: "Erro: não é possível obter o certificado do emissor local". Como posso corrigir isso?

Isso pode ser corrigido adicionando um certificado raiz confiável. Você pode adicionar a variável de ambiente NODE_EXTRA_CA_CERTS=file ao agente de build ou adicionar a variável da tarefa NODE.EXTRA.CA.CERTS=file no pipeline. Confira Documentação do Node.js para obter mais detalhes sobre essa variável. Confira Definir variáveis em um pipeline para obter instruções sobre como definir uma variável em seu pipeline.

Uso o TFS local e não vejo alguns desses recursos. Por que não?

Alguns desses recursos estão disponíveis apenas no Azure Pipelines e ainda não estão disponíveis localmente. Alguns recursos estarão disponíveis localmente se você tiver atualizado para a versão mais recente do TFS.