Delen via


Een mobiele app ondertekenen

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

Als u een mobiele app wilt ondertekenen en inrichten voor Android- of Apple-besturingssystemen, moet u ondertekeningscertificaten en Apple-inrichtingsprofielen beheren. In dit artikel wordt beschreven hoe u veilig certificaten en profielen beheert voor het ondertekenen en inrichten van uw app in Azure Pipelines.

Notitie

U hebt ten minste één agent nodig om een build of release uit te voeren. U kunt een door Microsoft gehoste Linux-, macOS- of Windows-buildagent gebruiken of uw eigen agent instellen. Zie Build- en releaseagents voor meer informatie.

Uw Android-app ondertekenen

Volg deze stappen om uw Android-app te ondertekenen terwijl uw handtekeningcertificaat veilig blijft.

Het sleutelarchiefbestand uploaden

  1. Haal een sleutelarchiefbestand op dat uw handtekeningcertificaat bevat. De Android-documentatie beschrijft het proces voor het genereren van een sleutelarchiefbestand en de bijbehorende sleutel.

  2. Ga in Azure Pipelines naar Beveiligde>bibliotheken. Selecteer + Beveiligd bestand en upload uw sleutelarchiefbestand naar de beveiligde bestandsbibliotheek. Tijdens het uploaden wordt uw sleutelarchief versleuteld en veilig opgeslagen.

De ondertekeningstaak toevoegen aan de pijplijn

Voeg de AndroidSigning@3 taak toe aan uw YAML-pijplijn na de stap waarmee uw app wordt gebouwd. In de AndroidSigning@3 taak:

  • <apkFiles> is vereist en is het pad en de namen van de APK-bestanden die moeten worden ondertekend. De standaardwaarde is **/*.apk.
  • <apksign> moet zijn true, wat de standaardwaarde is.
  • <keystore-file> is de naam van het geüploade sleutelarchiefbestand in de beveiligde bestandenbibliotheek.
  • <apksignerKeystorePassword> is het wachtwoord voor het niet-versleutelde sleutelarchiefbestand.
  • <apksignerKeystoreAlias> is de sleutelalias voor het handtekeningcertificaat.
  • <apksignerKeyPassword> is het wachtwoord voor de sleutel die is gekoppeld aan de opgegeven alias.

U kunt variabelen instellen en gebruiken in de YAML, of u kunt de variabelen instellen met behulp van het tabblad Variabelen in de gebruikersinterface van Azure Pipelines en ernaar verwijzen in de 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)

Elke buildagent kan uw app nu veilig ondertekenen zonder certificaatbeheer op de buildcomputer zelf.

Uw Apple iOS-, macOS-, tvOS- of watchOS-app ondertekenen

Voor het ondertekenen en inrichten van uw app heeft uw Xcode- of Xamarin.iOS-build toegang nodig tot uw P12-handtekeningcertificaat en een of meer inrichtingsprofielen. In de volgende stappen wordt uitgelegd hoe u deze bestanden kunt verkrijgen.

Uw P12-handtekeningcertificaat ophalen

  1. Exporteer uw certificaat voor ontwikkeling of distributieondertekening naar een .p12-bestand met behulp van Xcode of de app Sleutelhangertoegang in macOS.

    • Exporteren met behulp van Xcode:

      1. Ga naar Xcode>Preferences>Accounts.

      2. Selecteer uw Apple ID in de linkerkolom.

      3. Selecteer aan de rechterkant uw persoonlijke account of teamaccount en selecteer Certificaten beheren.

      4. Ctrl+Selecteer het certificaat dat u wilt exporteren en selecteer Certificaat exporteren in het menu.

        Schermopname van het exporteren van een certificaat met behulp van Xcode.

      5. Voer in het dialoogvenster de naam van het certificaat, de locatie in om het bestand op te slaan en een wachtwoord om het certificaat te beveiligen.

    • U kunt ook de procedure gebruiken die wordt beschreven in iOS-ondertekening om een soortgelijk proces te volgen met behulp van de app Sleutelhangertoegang in macOS of een handtekeningcertificaat genereren in Windows.

  2. Upload uw P12-bestand naar de beveiligde bestandenbibliotheek van Azure Pipelines. Tijdens het uploaden wordt uw certificaat versleuteld en veilig opgeslagen.

  3. Ga in uw pijplijn naar het tabblad Variabelen en voeg een variabele met de naam P12password toe met uw certificaatwachtwoord als waarde. Zorg ervoor dat u het vergrendelingspictogram selecteert om uw wachtwoord te beveiligen en verborgen te maken in logboeken.

Uw inrichtingsprofiel ophalen

Als uw app geen automatische ondertekening gebruikt, kunt u uw app-inrichtingsprofiel downloaden via de Apple Developer-portal. Zie Inrichtingsprofielen bewerken, downloaden of verwijderen voor meer informatie.

U kunt Xcode ook gebruiken voor toegang tot inrichtingsprofielen die op uw Mac zijn geïnstalleerd. Ga in Xcode naar Xcode>Preferences>Accounts. Selecteer uw Apple ID en uw team en selecteer Vervolgens Handmatige profielen downloaden.

Upload uw inrichtingsprofiel in Azure Pipelines naar de beveiligde bestandsbibliotheek. Tijdens het uploaden wordt uw bestand versleuteld en veilig opgeslagen.

De ondertekenings- en inrichtingstaken toevoegen aan de pijplijn

Als u uw app wilt ondertekenen en inrichten, kunt u het certificaat en profiel installeren tijdens elke build of de bestanden vooraf installeren op een macOS-buildagent.

Het certificaat en profiel installeren tijdens elke build

Installeer het certificaat en profiel tijdens elke build wanneer u geen duurzame toegang hebt tot de buildagent, bijvoorbeeld wanneer u gehoste macOS-agents gebruikt. Het P12-certificaat en het inrichtingsprofiel worden aan het begin van de build geïnstalleerd en verwijderd wanneer de build is voltooid.

  • Voeg de InstallAppleCertificate@2 taak toe aan uw YAML-pijplijn vóór de Xcode- of Xamarin.iOS-taak. Vervang in de code door <secure-file.p12> de naam van het geüploade .p12-bestand . Gebruik de variabele voor de beveiligde P12password.

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

    Notitie

    In de InstallAppleCertificate@2 taak wordt de deleteCert parameter standaard ingesteld trueop, waardoor het certificaat na de build wordt verwijderd.

  • Voeg de InstallAppleProvisioningProfile@1 taak toe aan uw YAML vóór de Xcode- of Xamarin.iOS-taak. Vervang door <secure-file.mobileprovision> de naam van het inrichtingsprofielbestand.

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

    Notitie

    In de InstallAppleProvisioningProfile@1 taak wordt de removeProfile parameter standaard ingesteld trueop, waardoor het profiel na de build wordt verwijderd.

Elke buildagent kan uw app nu veilig ondertekenen zonder certificaat- of profielbeheer op de buildcomputer zelf.

Het certificaat en profiel vooraf installeren op een macOS-buildagent

In plaats van het handtekeningcertificaat en de inrichtingsprofielen tijdens de build te installeren, kunt u deze vooraf installeren op een macOS-buildagent. De bestanden zijn vervolgens beschikbaar voor voortgezet gebruik door builds. Gebruik deze methode alleen wanneer u de personen en processen vertrouwt die toegang hebben tot de macOS-sleutelhanger op de agentcomputer.

Het P12-certificaat vooraf installeren

  1. Als u het P12-certificaat in de standaardsleutelhanger wilt installeren, voert u de volgende opdracht uit vanuit een macOS Terminal-venster op de buildagent. Vervang <certificate.p12> door het pad en de naam van uw P12-bestand. Vervang door <password> het versleutelingswachtwoord van uw P12-bestand.

    sudo security import <certificate.p12> -P <password>
    
  2. Voeg een nieuwe variabele toe aan uw pijplijn met de naam KEYCHAIN_PWD. Stel de waarde in als het wachtwoord voor de standaardsleutelhanger. Dit is normaal gesproken het wachtwoord voor de gebruiker die de agent start. Zorg ervoor dat u het vergrendelingspictogram selecteert om dit wachtwoord te beveiligen.

Het inrichtingsprofiel vooraf installeren

  1. Zoek de volledige naam van uw ondertekeningsidentiteit door een macOS Terminal-venster te openen en in te voeren security find-identity -v -p codesigning. U ziet een lijst met ondertekeningsidentiteiten in het formulier iPhone Developer/Distribution: Developer Name (ID). Als een identiteit ongeldig is, ziet u iets als (CSSMERR_TP_CERT_REVOKED) na de identiteit.

  2. Als u het inrichtingsprofiel op de agentcomputer wilt installeren, voert u de volgende opdracht uit vanuit een macOS Terminal-venster. Vervang <profile> door het pad naar uw inrichtingsprofielbestand en vervang door <UUID> de UUID van het inrichtingsprofiel. Dit is de bestandsnaam van het inrichtingsprofiel zonder de .mobileprovision extensie.

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

Ondertekenings- en inrichtingstaken toevoegen die gebruikmaken van de standaardsleutelhanger

  • Voeg de InstallAppleCertificate@2 taak toe aan uw YAML-pijplijn vóór de Xcode- of Xamarin.iOS-taak. Stel in de code de volgende waarden in:

    • certSecureFile: De naam van het geüploade .p12-bestand .
    • certPwd: De variabele voor de beveiligde P12password.
    • signingIdentity: De volledige naam van uw ondertekeningsidentiteit.
    • keychain: default, om toegang tot de standaardsleutelhanger toe te staan.
    • keychainPassword: De KEYCHAIN_PWD variabele.
    • deleteCert: false, om het certificaat tussen builds te behouden.
    - task: InstallAppleCertificate@2
      inputs:
        certSecureFile: '<secure-file.p12>'
        certPwd: '$(P12password)'
        signingIdentity: <full-signing-identity>
        keychain: default
        keychainPassword: `$(KEYCHAIN_PWD)
        deleteCert: false
    
  • Voeg de InstallAppleProvisioningProfile@1 taak toe. In de code:

    • Stel provProfileSecureFile deze in op de naam van uw inrichtingsprofielbestand.
    • Dit is zo false ingesteld removeProfile dat het profiel wordt bewaard tussen builds.
    - task: InstallAppleProvisioningProfile@1
        inputs:
          provProfileSecureFile: '<secure-file.mobileprovision>'
          removeProfile: false
    

De macOS-buildagent kan nu veilig uw app ondertekenen en inrichten voor alle builds zonder verder certificaat- of profielbeheer.

Verwijzen naar de beveiligde bestanden in de build-taak Xcode of Xamarin.iOS

Als u het beveiligde certificaat en profiel in uw pijplijnen wilt gebruiken, configureert u de volgende instellingen in uw Xcode- of Xamarin.iOS-buildtaken.

De beveiligde bestanden in de buildtaken maken gebruik van variabelen voor de signingIdentity en de provisioningProfileUuid. Deze variabelen worden automatisch ingesteld door de taken Apple-certificaat installeren en Apple-inrichtingsprofiel installeren voor het certificaat en inrichtingsprofiel dat u hebt geselecteerd.

Voor Xcode:

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

Voor Xamarin.iOS:

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

De pijplijnbuildagent ondertekent en richt uw app nu veilig in zonder verder certificaat- of profielbeheer op de buildcomputer zelf.

Voor meer informatie over: