Partilhar via


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

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

  2. 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 ser true, 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

  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 Contas de preferências>do Xcode.>

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

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

      4. Ctrl+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, 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.

  2. Carregue seu 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 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 seguro P12password.

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

    Nota

    Na tarefa, o InstallAppleCertificate@2 deleteCert parâmetro assume truecomo 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, o removeProfile parâmetro assume truecomo 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

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

  1. 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ário iPhone Developer/Distribution: Developer Name (ID). Se uma identidade for inválida, você verá algo como (CSSMERR_TP_CERT_REVOKED) depois da 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 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 seguro P12password.
    • signingIdentity: O nome completo da sua identidade de assinatura.
    • keychain: , defaultpara permitir o acesso ao porta-chaves padrão.
    • keychainPassword: A KEYCHAIN_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 para false que o perfil seja mantido 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 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.

Para mais informações sobre: