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
Haal een sleutelarchiefbestand op dat uw handtekeningcertificaat bevat. De Android-documentatie beschrijft het proces voor het genereren van een sleutelarchiefbestand en de bijbehorende sleutel.
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 zijntrue
, 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
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:
Ga naar Xcode>Preferences>Accounts.
Selecteer uw Apple ID in de linkerkolom.
Selecteer aan de rechterkant uw persoonlijke account of teamaccount en selecteer Certificaten beheren.
Ctrl+Selecteer het certificaat dat u wilt exporteren en selecteer Certificaat exporteren in het menu.
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.
Upload uw P12-bestand naar de beveiligde bestandenbibliotheek van Azure Pipelines. Tijdens het uploaden wordt uw certificaat versleuteld en veilig opgeslagen.
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 beveiligdeP12password
.- task: InstallAppleCertificate@2 inputs: certSecureFile: '<secure-file.p12>' certPwd: '$(P12password)'
Notitie
In de
InstallAppleCertificate@2
taak wordt dedeleteCert
parameter standaard ingesteldtrue
op, 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 deremoveProfile
parameter standaard ingesteldtrue
op, 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
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>
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
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 formulieriPhone Developer/Distribution: Developer Name (ID)
. Als een identiteit ongeldig is, ziet u iets als(CSSMERR_TP_CERT_REVOKED)
na de identiteit.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 beveiligdeP12password
.signingIdentity
: De volledige naam van uw ondertekeningsidentiteit.keychain
:default
, om toegang tot de standaardsleutelhanger toe te staan.keychainPassword
: DeKEYCHAIN_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
ingesteldremoveProfile
dat het profiel wordt bewaard tussen builds.
- task: InstallAppleProvisioningProfile@1 inputs: provProfileSecureFile: '<secure-file.mobileprovision>' removeProfile: false
- Stel
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.
Gerelateerde inhoud
Voor meer informatie over:
- Pijplijnen voor Android-apps, zie Android-apps bouwen, testen en implementeren.
- Pijplijnen voor iOS-apps, zie Xcode-apps bouwen, testen en implementeren.
- Agents, zie Azure Pipelines-agents.
- Agentpools en wachtrijen, zie Agentpools maken en beheren.
- Variabelen in pijplijnen, zie Variabelen definiëren.
- Problemen met pijplijnen oplossen, zie Problemen met pijplijnuitvoeringen oplossen.