Signieren Ihrer mobilen App

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

Wenn Sie eine App für Android- oder Apple-Betriebssysteme entwickeln, müssen Sie schließlich Signaturzertifikate und im Fall von Apple-Apps Bereitstellungsprofile verwalten. In diesem Artikel wird beschrieben, wie Sie diese zum Signieren und Bereitstellen Ihrer App sicher verwalten.

Tipp

Verwenden Sie einen von Microsoft gehosteten Linux-, macOS- oder Windows-Build-Agent, oder richten Sie einen eigenen Agent ein. Weitere Informationen finden Sie unter Build- und Release-Agents

In diesem Artikel wird Folgendes behandelt:

Signieren Ihrer Android-App

Führen Sie die folgenden Schritte aus, um Ihre Android-App zu signieren und gleichzeitig die Sicherheit Ihres Signaturzertifikats aufrechtzuerhalten:

  1. Rufen Sie zunächst 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.

  2. Erstellen Sie Ihre Buildpipeline aus der Android- oder Xamarin.Android-Buildvorlage. Wenn Sie bereits über eine Buildpipeline verfügen, fügen Sie die Android-Signaturaufgabe nach der Aufgabe hinzu, mit der Ihr APK erstellt wird.

  3. Suchen Sie nach dem Kontrollkästchen APK signieren der Android-Signaturaufgabe, und aktivieren Sie es.

  4. Wählen Sie neben dem Feld Keystore-Datei das Einstellungssymbol aus, und laden Sie Ihre Keystoredatei in die Bibliothek für sichere Dateien hoch. Während des Uploads wird der Keystore verschlüsselt und sicher gespeichert.

  5. Nachdem der Keystore in die Bibliothek für sichere Dateien hochgeladen wurde, wählen Sie ihn in der Dropdownliste Keystore-Datei aus.

  6. Wechseln Sie zur Registerkarte Variablen, und fügen Sie die folgenden Variablen hinzu. Geben Sie in der jeweiligen Spalte Wert Ihr Keystore-Kennwort, Ihren Schlüsselalias und Ihr Schlüsselkennwort ein.

    • keystore-password: Kennwort für die unverschlüsselte Keystore-Datei. Achten Sie darauf, das Symbol Sperren auszuwählen. Dadurch wird Ihr Kennwort geschützt und in allen Protokollen verdeckt.

    • key-alias: Der Schlüsselalias für das von Ihnen generierte Signaturzertifikat.

    • key-password: Das Kennwort für den Schlüssel, der dem angegebenen Alias zugeordnet ist. Achten Sie darauf, das Symbol Sperren auszuwählen.

      Android-Signaturvariablen

  7. Wechseln Sie zurück zur Registerkarte Aufgaben, und verweisen Sie in den Signaturoptionen auf die Namen Ihrer neu erstellten Variablen.

    Eingabewerte für Android-Signatur

Speichern Sie Ihre Buildpipeline, und Sie sind fertig. Ihre App kann jetzt von jedem Build-Agent sicher ohne Zertifikatverwaltung auf dem Buildcomputer selbst signiert werden.

Signieren Ihrer Apple iOS-, macOS-, tvOS- oder watchOS-App

Damit Ihre App von Ihrem Xcode- oder Xamarin.iOS-Build signiert und bereitgestellt werden kann, benötigt der Build Zugriff auf Ihr P12-Signaturzertifikat und mindestens ein Bereitstellungsprofil. In den nachfolgenden Abschnitten wird erläutert, wie diese Dateien abgerufen werden.

Abrufen Ihres P12-Signaturzertifikats

Nachdem Sie Ihr Entwicklungs- oder Verteilungssignaturzertifikat erstellt haben, exportieren Sie es entweder mit Xcode oder der Keychain Access-App unter macOS in eine .p12-Datei.

  1. Wenn Sie den Exportvorgang mit Xcode 8 oder niedriger durchführen, wechseln Sie zu Xcode>Einstellungen...>Konten, und wählen Sie Ihr Apple Developer-Konto aus.

  2. Wählen Sie Details anzeigen... aus, klicken Sie mit der rechten Maustaste auf die Signaturidentität, die Sie exportieren möchten, und wählen Sie Exportieren... aus.

  3. Geben Sie einen Dateinamen und ein Kennwort ein. Notieren Sie sich das Kennwort, da Sie es später benötigen.

    Zertifikatexport mit Xcode

  4. Alternativ dazu können Sie einen ähnlichen Prozess mit der Keychain Access-App unter macOS ausführen oder ein Signaturzertifikat unter Windows generieren. Verwenden Sie das in diesem Artikel beschriebene Verfahren, wenn Sie diese Methode bevorzugen.

Abrufen Ihres Bereitstellungsprofils

Sie können Ihr App-Bereitstellungsprofil aus dem Apple Developer-Portal herunterladen, es sei denn, für Ihre App wird automatisches Signieren verwendet. Erfahren Sie, wie Sie ein Bereitstellungsprofil im Apple-Entwicklerportal herunterladen.

Sie können auch Xcode verwenden, um auf die Bereitstellungsprofile zuzugreifen, die auf dem Mac installiert sind.

  1. Wenn Sie Xcode 8 oder niedriger verwenden, wechseln Sie zu Xcode>Einstellungen...>Konten, und wählen Sie Ihr Apple Developer-Konto aus.

  2. Klicken Sie mit der rechten Maustaste auf das gewünschte Bereitstellungsprofil, und wählen Sie Im Finder anzeigen aus.

  3. Kopieren Sie die hervorgehobene Datei aus dem Finder an einen anderen Speicherort, und geben Sie ihr einen aussagekräftigen Dateinamen.

    Xcode-Anzeige in Finder

Konfigurieren des Builds

Es gibt zwei empfohlene Möglichkeiten, wie von Ihrem Build auf Signaturzertifikate und Bereitstellungsprofile zum Signieren und Bereitstellen Ihrer App zugegriffen werden kann:

  1. Installation während des Buildprozesse
  2. Vorinstallation auf einem macOS-Build-Agent

Wählen Sie eine der folgenden Registerkarten aus, um Details anzuzeigen.

Verwenden Sie diese Methode, wenn Sie keinen dauerhaften Zugriff auf den Build-Agent haben, z. B. die gehosteten macOS-Agents. Das P12-Zertifikat und das Bereitstellungsprofil werden am Anfang des Buildprozesses installiert und nach Abschluss des Buildprozesses entfernt.

Installieren des P12-Zertifikats während des Buildprozesses

Visueller Editor
  1. Fügen Sie dem Build vor der Xcode- oder Xamarin.iOS-Aufgabe die Aufgabe Apple-Zertifikat installieren hinzu.
  2. Wählen Sie neben dem Feld Zertifikat (P12) das Einstellungssymbol aus, und laden Sie Ihre P12-Datei in die Bibliothek für sichere Dateien hoch. Während des Uploads wird das Zertifikat verschlüsselt und sicher gespeichert.
  3. Nachdem Ihr Zertifikat in die Bibliothek für sichere Dateien hochgeladen wurde, wählen Sie es in der Dropdownliste Zertifikat (P12) aus.
  4. Wechseln Sie zur Registerkarte Variablen, und fügen Sie eine Variable mit dem Namen P12password hinzu. Legen Sie den Wert auf das Kennwort Ihres Zertifikats fest. Achten Sie darauf, das Symbol Sperren auszuwählen. Dadurch wird Ihr Kennwort geschützt und in allen Protokollen verdeckt.
  5. Wechseln Sie zurück zur Registerkarte Aufgaben. Verweisen Sie in den Einstellungen der Aufgabe Apple-Zertifikat installieren mit im Feld Zertifikatkennwort (P12)$(P12password) auf Ihre neu erstellte Variable.
YAML-Beispiel
  1. Laden Sie die P12-Datei in die Bibliothek für sichere Dateien hoch. Während des Uploads wird das Zertifikat verschlüsselt und sicher gespeichert.

  2. Wechseln Sie zur Registerkarte Variablen, und fügen Sie eine Variable mit dem Namen P12password hinzu. Legen Sie den Wert auf das Kennwort Ihres Zertifikats fest. Achten Sie darauf, das Symbol Sperren auszuwählen. Dadurch wird Ihr Kennwort geschützt und in allen Protokollen verdeckt.

  3. Fügen Sie in YAML vor der Xcode- oder Xamarin.iOS-Aufgabe die Aufgabe Apple-Zertifikat installieren hinzu.

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

Installieren des Bereitstellungsprofils während des Buildprozesses

Visueller Editor
  1. Fügen Sie Ihrem Build vor der Xcode- oder Xamarin.iOS-Aufgabe die Aufgabe Apple-Bereitstellungsprofil installieren hinzu.
  2. Wählen Sie für die Option Speicherort des Bereitstellungsprofils die Option Sichere Dateien (in YAML: secureFiles) aus.
  3. Wählen Sie neben dem Feld Bereitstellungsprofil das Einstellungssymbol aus, und laden Sie die Bereitstellungsprofildatei in die Bibliothek für sichere Dateien hoch. Während des Uploads wird das Zertifikat verschlüsselt und sicher gespeichert.
  4. Nachdem das Zertifikat in die Bibliothek für sichere Dateien hochgeladen wurde, wählen Sie es in der Dropdownliste Bereitstellungsprofil aus.
  5. Aktivieren Sie das Kontrollkästchen Profil nach Buildvorgang entfernen. Dadurch wird sichergestellt, dass das Bereitstellungsprofil nicht auf dem Agentcomputer verbleibt.
YAML-Beispiel
  1. Laden Sie das Bereitstellungsprofil in die Bibliothek für sichere Dateien hoch. Während des Uploads wird das Zertifikat verschlüsselt und sicher gespeichert.

  2. Fügen Sie in YAML vor der Xcode- oder Xamarin.iOS-Aufgabe die Aufgabe Apple-Bereitstellungsprofil installieren hinzu.

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

    [HINWEIS] Der Standardwert von Profil nach Buildvorgang entfernen lautet true.

Verweisen auf die Dateien in der Xcode-Aufgabe

Visueller Editor
  1. Wählen Sie die Xcode-Aufgabe aus.
  2. Wählen Sie für die Option Signaturstil die Option Manual signing (Manuelles Signieren) aus.
  3. Geben Sie im Feld Signierungsidentität die Zeichenfolge $(APPLE_CERTIFICATE_SIGNING_IDENTITY) ein. Diese Variable wird automatisch von der Aufgabe Apple-Zertifikat installieren für das ausgewählte Zertifikat festgelegt.
  4. Geben Sie im Feld UUID des Bereitstellungsprofils die Zeichenfolge $(APPLE_PROV_PROFILE_UUID) ein. Diese Variable wird automatisch von der Aufgabe Apple-Bereitstellungsprofil installieren für das ausgewählte Bereitstellungsprofil festgelegt.
YAML-Beispiel
- task: Xcode@5
  inputs:
    signingOption: 'manual'
    signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
    provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'

Verweisen auf die Dateien in der Xamarin.iOS-Aufgabe

Visueller Editor
  1. Wählen Sie die Xamarin.iOS-Aufgabe aus.
  2. Wählen Sie für die Option Override using (Überschreiben mit) die Option Bezeichner aus.
  3. Geben Sie im Feld Signierungsidentität die Zeichenfolge $(APPLE_CERTIFICATE_SIGNING_IDENTITY) ein. Diese Variable wird automatisch von der Aufgabe Apple-Zertifikat installieren für das ausgewählte Zertifikat festgelegt.
  4. Geben Sie im Feld UUID des Bereitstellungsprofils die Zeichenfolge $(APPLE_PROV_PROFILE_UUID) ein. Diese Variable wird automatisch von der Aufgabe Apple-Bereitstellungsprofil installieren für das ausgewählte Bereitstellungsprofil festgelegt.
YAML-Beispiel
- task: XamariniOS@2
    inputs:
      solutionFile: '**/*.iOS.csproj'
      signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
      signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'

Speichern Sie Ihre Buildpipeline, und Sie sind fertig. Die App kann jetzt vom Build-Agent sicher signiert und bereitgestellt werden.

Häufig gestellte Fragen

Benötige ich einen Agent?

Sie benötigen mindestens einen Agent, um den Build oder das Release auszuführen.

Ich habe Probleme. Wie kann ich diese beheben?

Weitere Informationen finden Sie unter Problembehandlung bei Build und Release.

Ich kann keinen standardmäßigen Agentpool auswählen und ich kann meine Builds oder Releases nicht in der Warteschlange positionieren. Wie kann ich dies korrigieren?

Weitere Informationen finden Sie unter Agentpools.

Die Nuget-Pushaufgabe scheitert mit folgendem Fehler: „Fehler: Das lokale Ausstellerzertifikat konnte nicht abgerufen werden.“ Wie kann ich dieses Problem beheben?

Dies kann durch das Hinzufügen eines vertrauenswürdigen Stammzertifikats behoben werden. Sie können entweder die NODE_EXTRA_CA_CERTS=file Umgebungsvariable ihrem Build-Agent hinzufügen oder die NODE.EXTRA.CA.CERTS=file Aufgabenvariable in Ihrer Pipeline. Weitere Informationen zu dieser Variablen finden Sie in der Dokumentation zu Node.js. Anweisungen zum Festlegen einer Variablen in Ihrer Pipeline finden Sie unter Festlegen von Variablen in einer Pipeline.

Ich verwende TFS lokal und einige dieser Features werden nicht angezeigt. Warum nicht?

Einige dieser Features sind nur auf Azure Pipelines und noch nicht lokal verfügbar. Einige Features sind lokal verfügbar, wenn Sie ein Upgrade auf die neueste Version von TFS vorgenommen haben.