Freigeben über


Veröffentlichen einer iOS-App für den Vertrieb im App Store

Der am häufigsten verwendete Ansatz zum Verteilen von iOS-Apps an Benutzer erfolgt über den App Store. Apps werden im App Store über ein Online-Tool namens App Store Connect eingereicht. Beachten Sie, dass nur Entwickler, die Teil des Apple Developer Program sind, Zugriff auf iTunes Connect haben. Mitglieder des Apple Developer Enterprise Program haben keinen Zugriff. Alle Apps, die im App Store eingereicht werden, müssen von Apple genehmigt werden.

Für die Verteilung einer iOS-App muss die App mithilfe eines Bereitstellungsprofils bereitgestellt werden. Bereitstellungsprofile sind Dateien, die Informationen zum Codesignieren sowie die Identität der App und den beabsichtigten Verteilungsmechanismus enthalten.

Um eine .NET Multi-Platform App UI (.NET MAUI)-iOS-App zu verteilen, müssen Sie ein spezifisches Verteilungsbereitstellungsprofil erstellen. Dieses Profil ermöglicht das digitale Signaturen der App für die Veröffentlichung, sodass sie auf einem iOS-Gerät installiert werden kann. Ein Verteilungsbereitstellungsprofil enthält eine App-ID und ein Verteilungszertifikat. Sie können dieselbe App-ID verwenden, die Sie beim Bereitstellen Ihrer App auf einem Gerät zum Testen verwendet haben. Sie müssen jedoch ein Verteilungszertifikat erstellen, um sich oder Ihre Organisation zu identifizieren, wenn Sie noch kein Zertifikat besitzen.

Der Prozess zum Erstellen eines App Store-Verteilungsbereitstellungsprofils lautet wie folgt:

  1. Ein Verteilungszertifikat erstellen Weitere Informationen finden Sie unter Verteilungszertifikat erstellen.
  2. Erstellen einer App-ID Weitere Informationen finden Sie unter Erstellen einer App ID.
  3. Erstellen eines Bereitstellungsprofils Zusätzliche Informationen finden Sie unter Ein Bereitstellungsprofil erstellen.

Wichtig

Apple verfügt über eine Datenschutzrichtlinie für Apps, die auf iOS im App Store abzielen. Sie erfordert, dass die App eine Datenmanifestdatei in das App-Bündel einschließt, in der die Datentypen aufgeführt sind, die Ihre .NET MAUI-App oder alle Drittanbieter-SDKs und -Pakete sammeln, sowie die Gründe für die Verwendung aller erforderlichen Grund-APIs. Wenn Ihre Verwendung der erforderlichen Grund-APIs oder Drittanbieter-SDKs nicht im Datenschutzmanifest deklariert ist, wird Ihre App möglicherweise vom App Store abgelehnt. Weitere Informationen finden Sie im Apple-Datenschutzmanifest.

Ein Verteilungszertifikat erstellen

Ein Verteilungszertifikat wird verwendet, um Ihre Identität zu bestätigen. Bevor Sie ein Distributionszertifikat erstellen, sollten Sie sicherstellen, dass Sie Ihr Apple-Entwicklerkonto zu Visual Studio hinzugefügt haben. Weitere Informationen finden Sie unter Apple-Kontoverwaltung.

Sie müssen nur ein Verteilungszertifikat erstellen, wenn Sie noch kein Zertifikat besitzen. Das Verteilungszertifikat muss mit der Apple-ID für Ihr Apple-Entwicklerkonto erstellt werden.

Ein Verteilungszertifikat erstellen:

  1. Gehen Sie in Visual Studio zu Tools > Optionen > Xamarin > Apple Accounts.
  2. Wählen Sie im Dialog Apple-Entwicklerkonten ein Team aus und klicken Sie auf die Schaltfläche Details anzeigen ….
  3. Klicken Sie im Dialog Details auf Zertifikat erstellen und wählen Sie iOS Distribution aus. Eine neue Signaturidentität wird erstellt und mit Apple synchronisiert, sofern Sie über die richtigen Berechtigungen verfügen.

Wichtig

Der private Schlüssel und das Zertifikat, aus denen Ihre Signaturidentität besteht, werden auch in Keychain Access auf Ihrem Mac-Build-Host exportiert, vorausgesetzt, dass die IDE damit gekoppelt ist. Weitere Informationen finden Sie unter Pair to Mac für die iOS-Entwicklung.

Grundlegendes zu Zertifikatschlüsselpaaren

Ein Verteilungsprofil enthält Zertifikate, die zugehörigen Schlüssel und alle mit Ihrem Apple-Entwicklerkonto verbundenen Bereitstellungsprofile. Es gibt zwei Versionen eines Verteilungsprofils – eines ist in Ihrem Apple-Entwicklerkonto vorhanden, und das andere befindet sich auf einem lokalen Computer. Der Unterschied zwischen den beiden ist der Schlüsseltyp, den sie enthalten: Das Portalprofil enthält alle öffentlichen Schlüssel, die Ihren Zertifikaten zugeordnet ist, während die Kopie auf Ihrem lokalen Mac alle privaten Schlüssel enthält. Damit die Zertifikate gültig sind, müssen die Schlüsselpaare übereinstimmen.

Warnung

Der Verlust des Zertifikats und der zugehörigen Schlüssel kann äußerst ungünstig sein, da vorhandene Zertifikate gesperrt und zugeordnete Geräte erneut bereitgestellt werden müssen, einschließlich der für die Ad-hoc-Bereitstellung registrierten Geräte.

Erstellen eines Verteilungsprofils

Mit einem Verteilungsbereitstellungsprofil kann Ihre .NET MAUI iOS-App digital signiert werden, damit sie auf einem iOS-Gerät installiert werden kann. Ein Verteilungsbereitstellungsprofil enthält eine App-ID und ein Verteilungszertifikat.

Erstellen einer App-ID

Eine App ID ist erforderlich, um die App zu identifizieren, die Sie verteilen. Eine App ID ähnelt einer Reverse-DNS-Zeichenfolge, die eine App eindeutig identifiziert und mit dem Bündelbezeichner für Ihre App identisch sein sollte. Sie können dieselbe App-ID verwenden, die Sie beim Bereitstellen Ihrer App auf einem Gerät zum Testen verwendet haben.

Es gibt zwei Arten von App ID:

  • Platzhalter Mit einer App-ID mit Platzhalter können Sie eine einzige App-ID verwenden, um mehrere Apps abzugleichen, und sie hat normalerweise die Form com.domainname.*. Eine Wildcard-App-ID kann für die Verteilung mehrerer Apps verwendet werden und sollte für Apps verwendet werden, die keine app-spezifischen Funktionen ermöglichen.
  • Explizit. Eine explizite App-ID ist eindeutig für eine einzelne App und hat normalerweise die Form com.domainname.myid. Eine explizite App-ID ermöglicht die Verteilung einer App mit einem passenden Bundle-Identifikator. Explizite App IDs werden in der Regel für Apps verwendet, die app-spezifische Funktionen wie Apple Pay oder Game Center aktivieren. Weitere Informationen finden Sie unter Funktionen.

Formular zum Erstellen einer neuen App ID

  1. Navigieren Sie in Ihrem Apple-Developerkonto zu Zertifikaten, IDs und Profilen.

  2. Wählen Sie auf der Seite Zertifikate, Bezeichner und Profile die Registerkarte Bezeichner aus.

  3. Klicken Sie auf der Seite Kennungen auf die Schaltfläche +, um eine neue App ID zu erstellen.

  4. Wählen Sie auf der Seite Register a new identifier das Optionsfeld App IDs aus, bevor Sie auf die Schaltfläche Weiter klicken:

    Erstellen einer App-ID

  5. Wählen Sie auf der Seite Einen neuen Bezeichner registrieren die Option App aus, bevor Sie auf die Schaltfläche Weiter klicken:

    Registrieren einer App-ID.

  6. Geben Sie auf der Seite Registrieren einer App-ID eine Beschreibung ein und wählen Sie entweder die Optionsschaltfläche Explizit oder Wildcard Bundle-ID aus. Geben Sie dann die Bundle-ID für Ihre App im umgekehrten DS-Format ein:

    Geben Sie den Bündelbezeichner für die App an.

    Wichtig

    Die eingegebene Bundle-ID muss mit dem Bundle-Bezeichner in der Datei Info.plist in Ihrem Appsprojekt übereinstimmen.

    Der Bundle-Identifikator für eine .NET MAUI-App wird in der Projektdatei als Apps-ID-Eigenschaft gespeichert:

    • Klicken Sie in Visual Studio im Solution Explorer mit der rechten Maustaste auf Ihr .NET MAUI-App-Projekt und wählen Sie Eigenschaften aus. Navigieren Sie dann zur Registerkarte MAUI Shared > General. Das Feld Apps-ID listet den Bundle-Identifikator auf.
    • Klicken Sie in Visual Studio für Mac im Lösungsfenster mit der rechten Maustaste auf Ihr .NET MAUI-App-Projekt und wählen Sie Eigenschaften aus. Wählen Sie dann im Fenster Projekteigenschaften die Registerkarte Build >App Info aus. Das Feld Apps-ID listet den Bundle-Bezeichner auf.

    Wenn der Wert des Feldes Apps-ID aktualisiert wird, wird der Wert des Bundle-Bezeichners in der Info.plist automatisch aktualisiert.

  7. Wählen Sie auf der Seite Eine App ID registrieren alle Funktionen aus, die die App verwendet. Alle Funktionen müssen sowohl auf dieser Seite als auch in der Datei Entitlements.plist in Ihrem Appsprojekt konfiguriert werden. Weitere Informationen finden Sie unter Fähigkeiten und Berechtigungen.

  8. Klicken Sie auf der Seite Registrieren einer App-ID auf die Schaltfläche Weiter.

  9. Auf der Seite Bestätigen Sie Ihre App-ID klicken Sie auf die Schaltfläche Registrieren.

Erstellen eines Bereitstellungsprofils

Nachdem die App-ID erstellt wurde, sollten Sie ein Verteilungsbereitstellungsprofil erstellen. Dieses Profil ermöglicht das digitale Signaturen der App für die Veröffentlichung, sodass sie auf einem iOS-Gerät installiert werden kann.

So erstellen Sie ein Bereitstellungsprofil für die App Store-Verteilung:

  1. Wählen Sie auf der Seite "Zertifikate, Bezeichner und Profile" Ihres Apple-Developerkontos die Registerkarte "Profile" aus.

  2. Auf der Registerkarte Profile klicken Sie auf die Schaltfläche +, um ein neues Profil zu erstellen.

  3. Wählen Sie auf der Seite Registrieren eines neuen Bereitstellungsprofils das Optionsfeld App Store aus, bevor Sie auf die Schaltfläche Weiter klicken:

    Registrieren Sie ein Bereitstellungsprofil für die App Store-Verteilung.

  4. Wählen Sie auf der Seite Ein Bereitstellungsprofil erstellen in der Dropdown-Liste App ID die App ID aus, die Sie zuvor erstellt haben, bevor Sie auf die Schaltfläche Weiter klicken:

    Wählen Sie Ihre App-ID aus.

  5. Wählen Sie auf der Seite Ein Bereitstellungsprofil erstellen das Optionsfeld aus, das Ihrem Verteilungszertifikat entspricht, bevor Sie auf die Schaltfläche Weiter klicken:

    Wählen Sie Ihr Verteilungszertifikat aus.

  6. Geben Sie auf der Seite Ein Bereitstellungsprofil erstellen einen Namen für das Provisioning-Profil ein, bevor Sie auf die Schaltfläche Erstellen klicken:

    Generieren Sie das Bereitstellungsprofil.

    Hinweis

    Notieren Sie sich den Namen des Bereitstellungsprofils, da es beim Signaturen Ihrer App erforderlich ist.

  7. Klicken Sie auf der Seite Erstellen eines Bereitstellungsprofils optional auf die Schaltfläche Herunterladen, um Ihr Bereitstellungsprofil herunterzuladen.

    Hinweis

    Es ist nicht erforderlich, Ihr Bereitstellungsprofil jetzt herunterzuladen. Stattdessen führen Sie dies in Visual Studio aus.

Herunterladen von Bereitstellungsprofilen in Visual Studio

Nachdem Sie ein neues Bereitstellungsprofil im Apple Developer Portal erstellt haben, können Sie es mit Visual Studio herunterladen, damit es für die Bundlesignierung in Ihrer App zur Verfügung steht.

  1. Gehen Sie in Visual Studio zu Tools > Optionen > Xamarin > Apple Accounts.
  2. Wählen Sie im Dialogfeld Apple-Entwicklerkonten Ihr Team aus und klicken Sie auf Details anzeigen.
  3. Überprüfen Sie im Dialog Details, ob das neue Profil in der Liste Bereitstellungsprofile angezeigt wird. Möglicherweise müssen Sie Visual Studio neu starten, um die Liste zu aktualisieren.
  4. Klicken Sie im Dialog Details auf Alle Profile herunterladen.

Die Bereitstellungsprofile werden unter Windows heruntergeladen und in Ihren Mac-Buildhost exportiert, wenn die IDE mit ihr gekoppelt ist. Weitere Informationen finden Sie unter Pair to Mac für die iOS-Entwicklung.

Veröffentlichen der App

Visual Studio kann eine .NET MAUI iOS-App für die App Store-Verteilung veröffentlichen und in den App Store hochladen. Bevor Sie jedoch eine App in den App Store hochladen können, müssen Sie:

  • Einen Datensatz für die App erstellen, die Sie in den App Store im App Store-Verbinden hochladen möchten. Dieser Datensatz enthält alle Informationen zur App, so wie sie im App Store angezeigt werden wird (in so vielen Sprachen wie nötig), und auch alle Informationen, die während der Verteilung der App für ihre Verwaltung erforderlich sind. Weitere Informationen finden Sie unter Erstellen eines App-Eintrags auf developer.apple.com.
  • Ein App-spezifisches Kennwort erstellen. Informationen zum Generieren eines App-spezifischen Kennworts finden Sie unter Anmelden bei Apps mit Ihrer Apple-ID mit App-spezifischen Kennwörtern auf support.apple.com.

Informationen zum Veröffentlichen einer iOS-App mithilfe der Befehlszeilenschnittstelle (Command Line Interface, CLI) finden Sie unter Veröffentlichen einer iOS-App mithilfe der Befehlszeile.

  1. Stellen Sie in Visual Studio sicher, dass die IDE mit einem Mac Build-Host gekoppelt ist. Weitere Informationen finden Sie unter Pair to Mac für die iOS-Entwicklung.

  2. Verwenden Sie in der Visual Studio-Symbolleiste das Dropdown-Menü Debug-Ziel, um iOS-Remote-Geräte und dann Remote-Gerät auszuwählen:

    Wählen Sie Ihr Remotegerät in Visual Studio aus.

  3. Verwenden Sie in der Visual Studio-Symbolleiste das Dropdown-Menü Lösungskonfiguration, um von der Debug-Konfiguration zur Release-Konfiguration zu wechseln:

    Wählen Sie die Releasekonfiguration in Visual Studio aus.

  4. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihren Projektknoten, und wählen Sie Eigenschaften aus. Navigieren Sie dann zur Registerkarte iOS Bundle Signing und stellen Sie sicher, dass Scheme auf Manual Provisioning, Signing identity auf Distribution (Automatic) und Provisioning profile auf Automatic gesetzt ist:

    Screenshot der Registerkarte

    Diese Einstellungen stellen sicher, dass Visual Studio das richtige Bereitstellungsprofil auf der Grundlage des Bundle-Bezeichners in Info.plist auswählt (der mit dem Wert der Eigenschaft Application ID in Ihrer Projektdatei identisch ist). Alternativ können Sie die Signaturidentität auf das entsprechende Distributionszertifikat und das Bereitstellungsprofil auf das Profil setzen, das Sie in Ihrem Apple-Entwicklerkonto erstellt haben.

  5. Klicken Sie im Solution Explorer mit der rechten Maustaste auf Ihr .NET MAUI-App-Projekt und wählen Sie Veröffentlichen … aus:

    Wählen Sie das Menüelement

    Der Archiv-Manager wird geöffnet und Visual Studio beginnt mit der Archivierung Ihres App-Bundles:

    Screenshot des Archiv-Managers in Visual Studio.

    Der Archivierungsprozess signiert die App mit dem Zertifikat und den Bereitstellungsprofilen, die Sie auf der Registerkarte iOS Bundle Signing für die ausgewählte Lösungskonfiguration angegeben haben.

  6. Im Archiv-Manager stellen Sie nach erfolgreicher Archivierung sicher, dass Ihr Archiv ausgewählt ist, und wählen Sie dann die Schaltfläche Verteilen … aus, um mit der Paketierung Ihrer App für die Verteilung zu beginnen:

    Screenshot des Archiv-Managers in Visual Studio, nachdem die Archivierung abgeschlossen ist.

    Das Dialogfeld Verteilen – Kanal auswählen wird angezeigt.

  1. Wählen Sie im Dialogfeld Verteilen – Kanal auswählen die Schaltfläche App Store aus:

    Screenshot der Auswahl eines Verteilungskanals im Verteilungsdialogfeld.

  2. Wählen Sie im Dialogfeld Verteilen – Signaturidentität Ihre Signaturidentität und Ihr Bereitstellungsprofil aus:

    Screenshot der Auswahl einer Signaturidentität im Verteilungsdialogfeld.

    Hinweis

    Sie sollten die Signaturidentität und das Bereitstellungsprofil verwenden, die für Ihre App und den ausgewählten Vertriebskanal erstellt wurden.

  3. Wählen Sie im Dialogfeld Verteilen – Signaturidentität entweder die Schaltfläche Speichern unter oder die Schaltfläche In Speicher hochladen aus. Mit der Schaltfläche Speichern unter können Sie einen Dateinamen eingeben, bevor Sie Ihre App erneut signieren und in einer .ipa-Datei auf Ihrem Dateisystem veröffentlichen, um sie später mit einer App wie Transporter in den App Store hochzuladen. Mit der Schaltfläche In den Store hochladen wird deine App neu signiert und in einer .ipa-Datei veröffentlicht, bevor sie in den App Store hochgeladen wird.

    1. Wenn Sie die Schaltfläche In den Speicher hochladen wählen, wird das Dialogfeld In den Speicher hochladen angezeigt, nachdem Visual Studio die Datei .ipa erstellt hat. Geben Sie im Dialog Zugangsdaten hochladen Ihre Apple ID und das app-spezifische Kennwort ein und wählen Sie die Schaltfläche OK aus:

      Screenshot der Eingabe Ihres app-spezifischen Kennworts zum Hochladen der App in den App Store.

    Visual Studio validiert Ihr App-Paket und lädt es in den App Store hoch, vorausgesetzt, Sie haben einen Appseintrag in App Store Connect erstellt.

Problembehandlung

Transporter kann verwendet werden, um Fehler in App-Paketen zu identifizieren, die eine erfolgreiche Einreichung im App Store verhindern.