Signieren einer mobilen App
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Um eine mobile App für Android- oder Apple-Betriebssysteme zu signieren und bereitzustellen, müssen Sie Signaturzertifikate und Apple-Bereitstellungsprofile verwalten. In diesem Artikel wird beschrieben, wie Sie Zertifikate und Profile sicher verwalten, um Ihre App in Azure Pipelines zu signieren und bereitzustellen.
Hinweis
Sie benötigen mindestens einen Agent, um einen Build oder eine Version auszuführen. Sie können einen von Microsoft gehosteten Linux-, macOS- oder Windows-Build-Agent verwenden oder Ihren eigenen Agent einrichten. Weitere Informationen finden Sie unter Build- und Release-Agents.
Signieren Ihrer Android-App
Führen Sie die folgenden Schritte aus, um Ihre Android-App zu signieren, während Ihr Signaturzertifikat sicher bleibt.
Hochladen der Keystoredatei
Rufen Sie eine Keystoredatei ab, die Ihr Signaturzertifikat enthält. In der Android-Dokumentation wird der Prozess zum Generieren einer Keystore-Datei und des entsprechenden Schlüssels beschrieben.
Wechseln Sie in Azure Pipelines zu "Libraries>Secure files". Wählen Sie +Datei sichern und laden Sie Ihre Keystoredatei in die sichere Dateienbibliothek hoch. Während des Uploads wird Ihr Keystore verschlüsselt und sicher gespeichert.
Hinzufügen der Signieraufgabe zur Pipeline
Fügen Sie die aufgabe AndroidSigning@3 ihrer YAML-Pipeline nach dem Schritt hinzu, in dem Ihre App erstellt wird. In der AndroidSigning@3
Aufgabe:
<apkFiles>
ist erforderlich und ist der Pfad und die Namen der APK-Dateien, die signiert werden sollen. Der Standardwert ist**/*.apk
.<apksign>
muss die Standardeinstellung seintrue
.<keystore-file>
ist der Name Ihrer hochgeladenen Keystoredatei in der Bibliothek für sichere Dateien.<apksignerKeystorePassword>
ist das Kennwort für die unverschlüsselte Keystore-Datei.<apksignerKeystoreAlias>
ist der Schlüsselalias für das Signaturzertifikat.<apksignerKeyPassword>
ist das Kennwort für den Schlüssel, der dem angegebenen Alias zugeordnet ist.
Sie können Variablen im YAML festlegen und verwenden, oder Sie können die Variablen mithilfe der Registerkarte "Variablen" in der Benutzeroberfläche von Azure Pipelines festlegen und darauf verweisen.
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)
Jeder Build-Agent kann Ihre App jetzt ohne Zertifikatverwaltung auf dem Buildcomputer selbst sicher signieren.
Signieren Ihrer Apple iOS-, macOS-, tvOS- oder watchOS-App
Um Ihre App zu signieren und bereitzustellen, benötigt Ihr Xcode- oder Xamarin.iOS-Build Zugriff auf Ihr P12-Signaturzertifikat und ein oder mehrere Bereitstellungsprofile. In den folgenden Schritten wird erläutert, wie Sie diese Dateien abrufen.
Abrufen Ihres P12-Signaturzertifikats
Exportieren Sie Ihr Entwicklungs- oder Verteilungssignaturzertifikat mithilfe von Xcode oder der Schlüsselbund-Access-App unter macOS in eine P12-Datei .
So exportieren Sie Xcode:
Wechseln Sie zu "Xcode-Einstellungen>>"-Konten.
Wählen Sie in der linken Spalte Ihre Apple-ID aus.
Wählen Sie auf der rechten Seite Ihr persönliches oder Teamkonto aus, und wählen Sie "Zertifikate verwalten" aus.
STRG+Wählen Sie das Zertifikat aus, das Sie exportieren möchten, und wählen Sie im Menü "Zertifikat exportieren" aus.
Geben Sie im Dialogfeld den Zertifikatnamen, den Speicherort zum Speichern der Datei und ein Kennwort ein, um das Zertifikat zu sichern.
Oder verwenden Sie das unter iOS-Signieren beschriebene Verfahren, um einem ähnlichen Prozess mithilfe der Schlüsselbund-Access-App unter macOS zu folgen oder ein Signaturzertifikat unter Windows zu generieren.
Laden Sie Ihre P12-Datei in die sichere Dateienbibliothek von Azure Pipelines hoch. Während des Uploads wird Ihr Zertifikat verschlüsselt und sicher gespeichert.
Wechseln Sie in Ihrer Pipeline zur Registerkarte "Variablen ", und fügen Sie eine Variable mit dem Namen "P12password " mit Ihrem Zertifikatkennwort als Wert hinzu. Achten Sie darauf, das Sperrsymbol auszuwählen, um Ihr Kennwort zu sichern und in Protokollen zu verdecken.
Abrufen Ihres Bereitstellungsprofils
Wenn Ihre App keine automatische Signatur verwendet, können Sie Ihr App-Bereitstellungsprofil aus dem Apple Developer-Portal herunterladen. Weitere Informationen finden Sie unter Bearbeiten, Herunterladen oder Löschen von Bereitstellungsprofilen.
Sie können Xcode auch verwenden, um auf Bereitstellungsprofile zuzugreifen, die auf Ihrem Mac installiert sind. Wechseln Sie in Xcode zu "Xcode-Einstellungen>>"-Konten. Wählen Sie Ihre Apple-ID und Ihr Team und dann " Manuelle Profile herunterladen" aus.
Laden Sie in Azure Pipelines Ihr Bereitstellungsprofil in die bibliothek für sichere Dateien hoch. Während des Uploads wird Ihre Datei verschlüsselt und sicher gespeichert.
Hinzufügen der Signier- und Bereitstellungsaufgaben zur Pipeline
Um Ihre App zu signieren und bereitzustellen, können Sie entweder das Zertifikat und das Profil während jedes Builds installieren oder die Dateien auf einem macOS-Build-Agent vorinstallieren.
Installieren des Zertifikats und des Profils während der einzelnen Builds
Installieren Sie das Zertifikat und das Profil während jedes Builds, wenn Sie keinen dauerhaften Zugriff auf den Build-Agent haben, z. B. wenn Sie gehostete macOS-Agents verwenden. Das P12-Zertifikat und das Bereitstellungsprofil werden am Anfang des Buildprozesses installiert und nach Abschluss des Buildprozesses entfernt.
Fügen Sie die aufgabe InstallAppleCertificate@2 ihrer YAML-Pipeline vor der Aufgabe Xcode oder Xamarin.iOS hinzu. Ersetzen Sie
<secure-file.p12>
im Code den Namen der hochgeladenen P12-Datei . Verwenden Sie die Variable für die sichereP12password
.- task: InstallAppleCertificate@2 inputs: certSecureFile: '<secure-file.p12>' certPwd: '$(P12password)'
Hinweis
In der
InstallAppleCertificate@2
Aufgabe wird standardmäßig derdeleteCert
Parameter verwendettrue
, der das Zertifikat nach dem Build entfernt.Fügen Sie die InstallAppleProvisioningProfile@1 Aufgabe vor der Xcode- oder Xamarin.iOS-Aufgabe zu Ihrem YAML hinzu. Ersetzen Sie den
<secure-file.mobileprovision>
Namen Ihrer Bereitstellungsprofildatei.- task: InstallAppleProvisioningProfile@1 inputs: provProfileSecureFile: '<secure-file.mobileprovision>'
Hinweis
In der
InstallAppleProvisioningProfile@1
Aufgabe wird standardmäßig derremoveProfile
Parameter verwendettrue
, der das Profil nach dem Build entfernt.
Jeder Build-Agent kann Ihre App jetzt ohne Zertifikat- oder Profilverwaltung auf dem Buildcomputer selbst sicher signieren.
Vorabinstallation des Zertifikats und des Profils auf einem macOS-Build-Agent
Anstatt das Signaturzertifikat und die Bereitstellungsprofile während des Builds zu installieren, können Sie sie auf einem macOS-Build-Agent vorab installieren. Die Dateien stehen dann für die fortgesetzte Verwendung durch Builds zur Verfügung. Verwenden Sie diese Methode nur, wenn Sie den Personen und Prozessen vertrauen, die Zugriff auf die macOS-Schlüsselkette auf dem Agentcomputer haben.
Vorabinstallation des P12-Zertifikats
Führen Sie zum Installieren des P12-Zertifikats im Standardschlüsselbund den folgenden Befehl aus einem macOS-Terminalfenster auf dem Build-Agent aus. Ersetzen Sie den
<certificate.p12>
Pfad und den Namen Ihrer P12-Datei. Ersetzen Sie<password>
durch das Verschlüsselungskennwort der P12-Datei.sudo security import <certificate.p12> -P <password>
Fügen Sie ihrer Pipeline mit dem Namen KEYCHAIN_PWD eine neue Variable hinzu. Legen Sie den Wert als Kennwort auf den Standardschlüsselbund fest, bei dem es sich normalerweise um das Kennwort für den Benutzer handelt, der den Agent startet. Achten Sie darauf, das Sperrsymbol auszuwählen, um dieses Kennwort zu sichern.
Vorabinstallation des Bereitstellungsprofils
Suchen Sie den vollständigen Namen Ihrer Signaturidentität, indem Sie ein macOS-Terminalfenster öffnen und eingeben
security find-identity -v -p codesigning
. Im FormulariPhone Developer/Distribution: Developer Name (ID)
wird eine Liste der Signaturidentitäten angezeigt. Wenn eine Identität ungültig ist, wird etwas wie(CSSMERR_TP_CERT_REVOKED)
nach der Identität angezeigt.Um das Bereitstellungsprofil auf dem Agentcomputer zu installieren, führen Sie den folgenden Befehl aus einem macOS-Terminalfenster aus. Ersetzen Sie den Pfad zu Ihrer Bereitstellungsprofildatei, und ersetzen Sie
<profile>
<UUID>
durch die UUID des Bereitstellungsprofils, bei dem es sich um den Dateinamen des Bereitstellungsprofils ohne die.mobileprovision
Erweiterung handelt.sudo cp <profile> ~/Library/MobileDevice/Provisioning Profiles/<UUID>.mobileprovision
Hinzufügen von Signatur- und Bereitstellungsaufgaben, die den Standardschlüsselbund verwenden
Fügen Sie die aufgabe InstallAppleCertificate@2 ihrer YAML-Pipeline vor der Aufgabe Xcode oder Xamarin.iOS hinzu. Legen Sie im Code die folgenden Werte fest:
certSecureFile
: Der Name der hochgeladenen P12-Datei .certPwd
: Die Variable für das sichereP12password
.signingIdentity
: Der vollständige Name Ihrer Signaturidentität.keychain
:default
, um den Zugriff auf den Standardschlüsselbund zuzulassen.keychainPassword
: DieKEYCHAIN_PWD
Variable.deleteCert
:false
, um das Zertifikat zwischen Builds beizubehalten.
- task: InstallAppleCertificate@2 inputs: certSecureFile: '<secure-file.p12>' certPwd: '$(P12password)' signingIdentity: <full-signing-identity> keychain: default keychainPassword: `$(KEYCHAIN_PWD) deleteCert: false
Fügen Sie die InstallAppleProvisioningProfile@1 Aufgabe hinzu. Im Code:
- Legen Sie
provProfileSecureFile
den Namen der Bereitstellungsprofildatei fest. - Legen Sie diese Einstellung
removeProfile
festfalse
, sodass das Profil zwischen Builds beibehalten wird.
- task: InstallAppleProvisioningProfile@1 inputs: provProfileSecureFile: '<secure-file.mobileprovision>' removeProfile: false
- Legen Sie
Der macOS-Build-Agent kann ihre App jetzt sicher signieren und für alle Builds ohne weiteres Zertifikat oder Profilverwaltung bereitstellen.
Verweisen Auf die sicheren Dateien in der Xcode- oder Xamarin.iOS-Buildaufgabe
Um das sichere Zertifikat und das Profil in Ihren Pipelines zu verwenden, konfigurieren Sie die folgenden Einstellungen in Ihren Xcode- oder Xamarin.iOS-Buildaufgaben.
Die Verweise auf sichere Dateien in den Buildaufgaben verwenden Variablen für die signingIdentity
und die provisioningProfileUuid
. Diese Variablen werden automatisch durch die Aufgaben "Apple-Zertifikat installieren" und "Apple Provisioning Profile installieren" für das ausgewählte Zertifikat und das von Ihnen ausgewählte Bereitstellungsprofil festgelegt.
Für Xcode:
- task: Xcode@5
inputs:
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
Für Xamarin.iOS:
- task: XamariniOS@2
inputs:
solutionFile: '**/*.iOS.csproj'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'
Der Pipelinebuild-Agent signiert und stellt Ihre App jetzt ohne weiteres Zertifikat oder Profilverwaltung auf dem Buildcomputer selbst bereit.
Zugehöriger Inhalt
Weitere Informationen:
- Pipelines für Android-Apps finden Sie unter Erstellen, Testen und Bereitstellen von Android-Apps.
- Pipelines für iOS-Apps finden Sie unter Erstellen, Testen und Bereitstellen von Xcode-Apps.
- Agents finden Sie unter Azure Pipelines Agents.
- Agentpools und Warteschlangen finden Sie unter Erstellen und Verwalten von Agentpools.
- Variablen in Pipelines finden Sie unter Definieren von Variablen.
- Problembehandlung bei Pipelines finden Sie unter "Problembehandlung bei Pipelineausführungen".
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für