Freigeben über


Veröffentlichen einer Mac Catalyst-App zur Ad-hoc-Verteilung

Wenn Sie Mac Catalyst-Apps außerhalb des Mac App Store vertreiben, können Sie Ihre App auch an eine begrenzte Anzahl von Benutzern auf registrierten Geräten verteilen. Dies wird als Ad-hoc-Verteilung bezeichnet und in erster Linie zum Testen von Apps innerhalb einer Gruppe von Personen verwendet. Es ist jedoch auf 100 Geräte pro Mitgliedschaftsjahr beschränkt, und die Geräte müssen Ihrem Apple-Entwicklerkonto hinzugefügt werden. Mitglieder des Apple Developer Program und des Apple Developer Enterprise Program können diesen Vertriebsansatz nutzen.

Die Verteilung einer Mac Catalyst-App erfordert, dass die App mit einem Bereitstellungsprofil bereitgestellt wird. Bereitstellungsprofile sind Dateien, die Informationen zur Codesignierung sowie die Identität der App und den beabsichtigten Verteilungsmechanismus enthalten.

Um eine .NET Multiplattform App UI (.NET MAUI) Mac Catalyst-App außerhalb des Mac App Store mit Ad-hoc-Verteilung zu verteilen, müssen Sie ein Entwicklungsbereitstellungsprofil erstellen, das speziell für diese App gilt. Mit diesem Profil kann die App für die Veröffentlichung digital signiert werden, sodass sie auf Macs installiert werden kann. Ein Ad-hoc-Entwicklungsbereitstellungsprofil enthält eine App-ID, ein Entwicklungszertifikat und eine Liste der Geräte, die die App installieren können. Sie müssen ein Entwicklungszertifikat erstellen, um sich oder Ihre Organisation zu identifizieren, wenn Sie noch kein Zertifikat besitzen.

Der Prozess für die Bereitstellung einer .NET MAUI Mac Catalyst-App für ad-hoc-Verteilung lautet wie folgt:

  1. Erstellen Sie eine Anforderung zur Zertifikatsignierung. Weitere Informationen finden Sie unter Erstellen einer Zertifikatsignierungsanforderung.
  2. Erstellen Sie ein Entwicklungszertifikat Weitere Informationen finden Sie unter Erstellen eines Entwicklungszertifikats.
  3. Erstellen einer App-ID Weitere Informationen finden Sie unter Erstellen einer App ID.
  4. Fügen Sie Ihrem Apple-Entwicklerkonto Geräte hinzu. Weitere Informationen finden Sie unter Geräte hinzufügen.
  5. Erstellen eines Bereitstellungsprofils Zusätzliche Informationen finden Sie unter Ein Bereitstellungsprofil erstellen.
  6. Laden Sie Ihr Bereitstellungsprofil herunter. Weitere Informationen finden Sie unter Herunterladen Ihres Bereitstellungsprofils in Xcode.

Wichtig

Dieser Artikel zeigt die Bereitstellung für die Ad-hoc-Verteilung mit einem Apple-Entwicklerkonto, der Teil des Apple Developer Program ist. Sie kann auch für einen Apple-Entwicklerkonto verwendet werden, der Teil des Apple Developer Enterprise Program ist, da die erforderlichen Schritte weitgehend identisch sind.

Sobald die Bereitstellung abgeschlossen ist, sollten Sie Ihre App für die Veröffentlichung vorbereiten und sie dann mit dem folgenden Verfahren veröffentlichen:

  1. Optional können Sie Ihrer App Berechtigungen hinzufügen. Weitere Informationen finden Sie unter Berechtigungen hinzufügen.
  2. Aktualisieren Sie die Datei Info.plist der App. Weitere Informationen finden Sie unter Info.plist aktualisieren.
  3. Veröffentlichen Sie Ihre App über die Befehlszeile. Weitere Informationen finden Sie unter Veröffentlichen über die Befehlszeile.

Erstellen einer Zertifikatsignieranforderung

Bevor Sie ein Verteilungszertifikat erstellen, müssen Sie zunächst eine Zertifikatsignierungsanforderung (CSR) in Keychain Access auf einem Mac erstellen:

  1. Starten Sie auf dem Mac Keychain Access.

  2. Wählen Sie in Keychain Access das Menüelement Keychain Access > Zertifikatsassistent > Zertifikat von einer Zertifizierungsstelle anfordern… aus.

  3. Geben Sie im Dialog Zertifikatsassistent eine E-Mail-Adresse in das Feld Benutzer-E-Mail-Adresse ein.

  4. Geben Sie im Dialog Zertifikatsassistent einen Namen für den Schlüssel in das Feld Gemeinsamer Name ein.

  5. Lassen Sie im Dialogfeld Zertifikatsassistent das Feld CA-E-Mail-Adresse leer.

  6. Wählen Sie im Dialogfeld Zertifikatsassistent das Optionsfeld Auf Festplatte gespeichert aus und wählen Sie Weiter aus:

    Dialogfeld „Zertifikatsassistent“.

  7. Speichern Sie die Zertifikatssignierungsanforderung an einem bekannten Ort.

  8. Wählen Sie im Dialog Zertifikatsassistent die Schaltfläche Erledigt aus.

  9. Schließen Sie den Schlüsselbundzugriff.

Erstellen eines Entwicklungszertifikats

Mit der CSR können Sie ein Entwicklungszertifikat erstellen, das Ihre Identität bestätigt. Das Entwicklungszertifikat muss mit der Apple ID für Ihren Apple-Entwicklerkonto erstellt werden:

  1. Melden Sie sich in einem Webbrowser bei Ihrem Apple-Entwicklerkonto an.

  2. Wählen Sie in Ihrem Apple Entwicklerkonto die Registerkarte Zertifikate, IDs & Profile.

  3. Wählen Sie auf der Seite Zertifikate, Identifikatoren & Profile die Schaltfläche +, um ein neues Zertifikat zu erstellen.

  4. Wählen Sie auf der Seite Erstellen eines neuen Zertifikats das Optionsfeld Apple-Entwicklung aus, bevor Sie die Schaltfläche Weiter auswählen:

    Erstellen Sie ein Apple Entwicklungszertifikat

  5. Wählen Sie auf der Seite Erstellen eines neuen Zertifikats die Option Datei wählen aus:

    Laden Sie eine Zertifikatsignieranforderung hoch.

  6. Wählen Sie im Dialogfeld Dateien zum Hochladen auswählen die zuvor erstellte Zertifikatsanforderungsdatei aus (eine Datei mit einer .certSigningRequest-Dateierweiterung) und wählen Sie anschließend Hochladen aus.

  7. Wählen Sie auf der Seite Erstellen eines neuen Zertifikats die Schaltfläche Weiter aus:

    Fahren Sie mit der Erstellung Ihres Verteilungszertifikats fort.

  8. Wählen Sie auf der Seite Ihr Zertifikat herunterladen die Schaltfläche Herunterladen aus:

    Laden Sie Ihr Verteilungszertifikat herunter.

    Die Zertifikatsdatei (eine Datei mit einer .cer-Erweiterung) wird an Ihren ausgewählten Speicherort heruntergeladen.

  9. Doppelklicken Sie auf Ihrem Mac auf die heruntergeladene Zertifikatsdatei, um das Zertifikat in Ihrem Schlüsselbund zu installieren. Das Zertifikat erscheint in der Kategorie Meine Zertifikate in Schlüsselbundzugang und beginnt mit Apple Development:

    Schlüsselbundzugriff mit Entwicklungszertifikat.

    Hinweis

    Notieren Sie sich den vollständigen Zertifikatsnamen in Keychain Access. Sie wird beim Signaturen Ihrer App benötigt.

Erstellen eines Entwicklungsprofils

Mit einem Ad-hoc-Entwicklungsbereitstellungsprofil kann Ihre .NET MAUI Mac Catalyst-App digital signiert werden, sodass sie auf bestimmten Macs installiert werden kann. Ein Ad-hoc-Entwicklungsbereitstellungsprofil enthält eine App-ID, ein Entwicklungszertifikat und eine Liste der Geräte, die die App installieren können.

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. Wählen Sie auf der Seite Bezeichner die Schaltfläche + aus, um eine neue App-ID zu erstellen.

  4. Wählen Sie auf der Seite Einen neuen Bezeichner registrieren das Optionsfeld App IDs aus, bevor Sie die Schaltfläche Weiter auswählen:

    Erstellen einer App-ID

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

    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-Bezeichner für eine .NET MAUI-App wird in der Projektdatei als die Eigenschaft Anwendungs-ID 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.

    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. Wählen Sie auf der Seite Registrieren einer App-ID die Schaltfläche Weiter aus.

  9. Auf der Seite Ihre App-ID bestätigen wählen Sie die Schaltfläche Registrieren aus.

Hinzufügen von Geräten

Beim Erstellen eines Bereitstellungsprofils für die Ad-hoc-Verteilung muss das Profil angeben, auf welchen Geräten die App ausgeführt werden kann. Bevor Sie die Geräte auswählen, die dem Bereitstellungsprofil hinzugefügt werden sollen, müssen Sie zunächst Geräte zu Ihrem Apple-Entwicklerkonto hinzufügen. Dies kann mit den folgenden Schritten erreicht werden:

  1. Wählen Sie das Menüelement Apple > Über diesen Mac aus.

  2. Wählen Sie auf der Registerkarte Übersicht die Schaltfläche Systembericht … aus.

  3. Wählen Sie im Systembericht den Expander Hardware aus, um die Hardwareübersicht zu sehen. Der Bericht zeigt den universell eindeutigen Bezeichner (UUID) als Hardware UUID in macOS 10.15 und früher oder Provisioning UDID in macOS 11.0 und später an.

  4. Wählen Sie den Wert Hardware UUID oder Provisioning UDID aus und kopieren Sie ihn in die Zwischenablage.

  5. Gehen Sie in einem Webbrowser zum Abschnitt Geräte Ihres Apple-Entwicklerkonto und klicken Sie auf die Schaltfläche +.

  6. Setzen Sie auf der Seite Neues Gerät registrieren die Plattform auf macOS und geben Sie einen Namen für das neue Gerät an. Fügen Sie dann die Kennung aus der Zwischenablage in das Feld Geräte-ID (UUID) ein und klicken Sie auf die Schaltfläche Weiter:

    Registrieren Sie ein Gerät, indem Sie es benennen und seinen eindeutigen Gerätebezeichner eingeben.

  7. Überprüfen Sie auf der Seite Neues Gerät registrieren die Informationen und klicken Sie dann auf die Schaltfläche Registrieren.

Wiederholen Sie die obigen Schritte für alle Macs, auf denen Sie Ihre .NET MAUI Mac Catalyst-App mithilfe der Ad-hoc-Verteilung bereitstellen möchten.

Erstellen eines Bereitstellungsprofils

Sobald die App-ID erstellt wurde, sollten Sie ein Entwicklungsbereitstellungsprofil erstellen. Mit diesem Profil kann die App digital signiert werden, damit sie auf bestimmten Macs installiert werden kann.

So erstellen Sie ein Bereitstellungsprofil für die Ad-hoc-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 Ein neues Bereitstellungsprofils registrieren das Optionsfeld macOS App Development aus, bevor Sie auf die Schaltfläche Weiter klicken:

    Registrieren Sie ein Bereitstellungsprofil für die Ad-hoc-Verteilung.

  4. Wählen Sie auf der Seite Ein Bereitstellungprofil erstellen das Optionsfeld Mac Catalyst aus. Wählen Sie dann 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. Aktivieren Sie auf der Seite Ein Bereitstellungsprofil erzeugen das Kontrollkästchen, das Ihrem Entwicklungszertifikat entspricht, bevor Sie auf die Schaltfläche Weiter klicken:

    Wählen Sie Ihr Entwicklungszertifikat.

  6. Wählen Sie auf der Seite Erstellen eines Bereitstellungsprofils die Geräte aus, auf denen die App installiert werden soll, und klicken Sie dann auf die Schaltfläche Weiter.

    Screenshot des Hinzufügens eines Geräts zu einem Bereitstellungsprofil.

  7. 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.

  8. 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 werden Sie dies in Xcode tun.

Laden Sie Ihr Bereitstellungsprofil in Xcode herunter

Nachdem Sie ein Bereitstellungsprofil in Ihrem Apple-Entwicklerkonto erstellt haben, kann Xcode es herunterladen, sodass es für das Signaturen Ihrer App verfügbar ist:

  1. Starten Sie auf Ihrem Mac Xcode.

  2. Wählen Sie in Xcode das Menüelement Xcode > Einstellungen … aus.

  3. Wählen Sie im Dialog Einstellungen die Registerkarte Konten aus.

  4. Klicken Sie auf der Registerkarte Konten auf die Schaltfläche +, um Ihren Apple-Entwicklerkonto zu Xcode hinzuzufügen:

    Xcode-Konten-Dialog in den Einstellungen.

  5. Wählen Sie im Popup-Fenster Kontotyp die Option Apple ID aus und klicken Sie anschließend auf die Schaltfläche Weiter:

    Xcode wählt den Kontotyp aus, den Sie hinzufügen möchten.

  6. Geben Sie im Anmeldefenster Ihre Apple ID ein und klicken Sie auf die Schaltfläche Weiter.

  7. Geben Sie im Anmeldefenster Ihr Apple ID-Kennwort ein und klicken Sie auf die Schaltfläche Weiter:

    Xcode Apple-Kontoanmeldung.

  8. Klicken Sie auf der Registerkarte Konten auf die Schaltfläche Zertifikate verwalten…, um sicherzustellen, dass Ihr Verteilungszertifikat heruntergeladen wurde.

  9. Klicken Sie auf der Registerkarte Konten auf die Schaltfläche Manuelle Profile herunterladen, um Ihre Provisionierungsprofile herunterzuladen:

    Details zum Xcode-Apple-Entwicklerprogrammkonto.

  10. Warten Sie, bis der Download abgeschlossen ist, und schließen Sie dann Xcode.

Hinzufügen von Berechtigungen

Die App Sandbox von Apple schränkt den Zugriff auf Systemressourcen und Benutzerdaten in Mac-Apps ein, um den Schaden einzudämmen, wenn eine App kompromittiert wird. Sie muss für Mac Catalyst-Apps aktiviert werden, die über den Mac App Store vertrieben werden, und kann optional für Mac Catalyst-Apps aktiviert werden, die außerhalb des Mac App Store vertrieben werden.

Dies kann durch Hinzufügen einer Entitlements.plist-Datei zum Ordner Platforms/MacCatalyst Ihres .NET MAUI-App-Projekts erreicht werden:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
  </dict>
</plist>

Die App Sandbox-Berechtigung wird über den Schlüssel com.apple.security.app-sandbox vom Typ boolean definiert. Informationen zu App Sandbox finden Sie unter Schutz von Benutzerdaten mit App Sandbox auf developer.apple.com. Informationen über die App Sandbox-Berechtigung finden Sie unter App Sandbox-Berechtigung.

Wenn Ihre App ausgehende Netzwerkverbindungen öffnet, müssen Sie auch den Schlüssel com.apple.security.network.client vom Typ boolean zu Ihrer Datei Entitlements.plist hinzufügen:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.network.client</key>
    <true/>
  </dict>
</plist>

Informationen zur Berechtigung für ausgehende Netzwerkverbindungen finden Sie unter com.apple.security.network.client auf developer.apple.com.

Info.plist aktualisieren

Bevor Sie Ihre App verteilen, sollten Sie ihre Info.plist-Datei mit zusätzlichen Informationen aktualisieren.

Hinweis

Es ist zwar nicht erforderlich, die Info.plist-Datei Ihrer App zu aktualisieren, wenn Sie sie zu Testzwecken verteilen, aber diese Aktualisierungen sind erforderlich, wenn Sie die endgültige getestete Version Ihrer App verteilen. Daher empfiehlt es sich, diese Updates auszuführen.

Angeben des Benutzeroberflächen-Idioms

Eine Mac Catalyst-App kann in der iPad- oder Mac-Benutzeroberflächensprache ausgeführt werden:

  • Das iPad-Benutzeroberflächen-Idiom weist macOS an, die Benutzeroberfläche der App so zu skalieren, dass sie der Mac-Display-Umgebung entspricht und gleichzeitig das iPad-ähnliche Aussehen beibehält.
  • Die Mac-Benutzeroberfläche skaliert die Benutzeroberfläche der App nicht an die Mac-Anzeigeumgebung. Einige Steuerelemente ändern ihre Größe und ihr Aussehen, und die Interaktion mit ihnen fühlt sich genauso an wie die Interaktion mit AppKit-Steuerelementen.

Standardmäßig verwenden .NET MAUI Mac Catalyst-Apps das iPad-Benutzeroberflächen-Idiom. Wenn dies Ihr gewünschtes Verhalten ist, stellen Sie sicher, dass die Datei Info.plist der App nur 2 als Wert des Schlüssels UIDeviceFamily angibt:

<key>UIDeviceFamily</key>
<array>
  <integer>2</integer>
</array>

Um das Idiom der Mac-Benutzeroberfläche zu übernehmen, aktualisieren Sie die Datei Info.plist der App, um 6 als Wert des Schlüssels UIDeviceFamily anzugeben:

<key>UIDeviceFamily</key>
<array>
  <integer>6</integer>
</array>

Weitere Informationen über Mac Catalyst-Benutzeroberflächen-Idiome finden Sie unter Das UI-Idiom für Ihre Mac Catalyst-App bestimmen.

Festlegen der Standardsprache und Region für die App

Setzen Sie den Schlüssel CFBundleDevelopmentRegion in der Info.plist Ihrer App auf einen string, der die native Entwicklungsregion der Lokalisierung darstellt:

<key>CFBundleDevelopmentRegion</key>
<string>en</string>

Der Wert des Schlüssels sollte ein Sprachbezeichner und optional ein Regionalbezeichner sein. Weitere Informationen finden Sie unter CFBundleDevelopmentRegion auf developer.apple.com.

Setzen Sie den Schlüssel NSHumanReadableCopyright in der Info.plist Ihrer App auf einen string, der den für Menschen lesbaren Urheberrechtshinweis für Ihre App darstellt:

<key>NSHumanReadableCopyright</key>
<string>MyMauiApp © 2023</string>

Für weitere Informationen siehe NSHumanReadableCopyright auf developer.apple.com.

Deklarieren Sie die Verwendung von Verschlüsselung in Ihrer App

Wenn Ihre App verschlüsselt ist und Sie planen, sie außerhalb der USA oder Kanadas zu vertreiben, unterliegt sie den US-Ausfuhrbestimmungen. Sie können Informationen über die Verwendung der Verschlüsselung in der Info.plist-Datei Ihrer App bereitstellen.

Dies wird erreicht, indem der ITSAppUsesNonExemptEncryption-Schlüssel zur Info.plist Ihrer App mit einem boolean-Wert hinzugefügt wird, der angibt, ob Ihre App Verschlüsselung verwendet:

<key>ITSAppUsesNonExemptEncryption</key>
<false/>

Weitere Informationen finden Sie unter Einhaltung der Exportbestimmungen für Verschlüsselung auf developer.apple.com.

Veröffentlichen über die Befehlszeile

Um Ihre Mac Catalyst-App über die Befehlszeile auf einem Mac zu veröffentlichen, öffnen Sie ein Terminal und navigieren Sie zu dem Ordner für Ihr .NET MAUI-Appsprojekt. Führen Sie den Befehl dotnet publish mit den folgenden Parametern aus:

Parameter Wert
-f oder --framework Das Zielframework ist net8.0-maccatalyst.
-c oder --configuration Die Buildkonfiguration ist Release.
-p:MtouchLink Der Verknüpfungsmodus für das Projekt, der None, SdkOnly oder Full sein kann.
-p:CreatePackage Legen Sie die Einstellung auf true fest, damit am Ende des Builds ein Paket (.pkg) für die App erstellt wird.
-p:EnableCodeSigning Auf true setzen, damit Codesignieren aktiviert wird.
-p:CodesignKey Der Name des Codesignaturschlüssels. Legen Sie den Namen Ihres Verteilungszertifikats fest, wie in Keychain Access angezeigt.
-p:CodesignProvision Name des Bereitstellungsprofils, das beim Signaturen verwendet werden soll
-p:CodesignEntitlements Der Pfad zur Berechtigungsdatei, die die von der App benötigten Berechtigungen angibt. Auf Platforms\MacCatalyst\Entitlements.plist festlegen.
-p:RuntimeIdentifier Der Laufzeitbezeichner (RID) für das Projekt. Release-Builds von .NET MAUI Mac Catalyst-Apps verwenden standardmäßig maccatalyst-x64 und maccatalyst-arm64 als Laufzeitbezeichner, um universelle Apps zu unterstützen. Geben Sie maccatalyst-x64 an, oder maccatalyst-arm64, um nur eine einzelne Architektur zu unterstützen.
-p:UseHardenedRuntime Setzen Sie den Wert auf true, um die gehärtete Laufzeit zu aktivieren, die für Mac Catalyst-Apps erforderlich ist, die außerhalb des Mac App Store vertrieben werden.

Warnung

Der Versuch, eine .NET MAUI-Lösung zu veröffentlichen, führt dazu, dass der Befehl dotnet publish versucht, jedes Projekt in der Lösung einzeln zu veröffentlichen, was zu Problemen führen kann, wenn Sie andere Projekttypen zu Ihrer Lösung hinzugefügt haben. Daher sollte der Befehl dotnet publish auf Ihr .NET MAUI-Appsprojekt beschränkt sein.

Zusätzliche Build-Parameter können auf der Kommandozeile angegeben werden, wenn sie nicht in einer <PropertyGroup> in Ihrer Projektdatei enthalten sind. In der folgenden Tabelle sind einige der üblichen Parameter aufgeführt:

Parameter Wert
-p:ApplicationTitle Der vom Benutzer sichtbare Name für die App.
-p:ApplicationId Der eindeutige Bezeichner für die App, wie etwa com.companyname.mymauiapp.
-p:ApplicationVersion Die Version des Builds, die eine Iteration der App identifiziert.
-p:ApplicationDisplayVersion Die Versionsnummer der API.
-p:RuntimeIdentifier Der Laufzeitbezeichner (RID) für das Projekt. Release-Builds von .NET MAUI Mac Catalyst-Apps verwenden standardmäßig maccatalyst-x64 und maccatalyst-arm64 als Laufzeitbezeichner, um universelle Apps zu unterstützen. Geben Sie maccatalyst-x64 an, oder maccatalyst-arm64, um nur eine einzelne Architektur zu unterstützen.

Eine vollständige Liste der Build-Eigenschaften finden Sie unter Projektdateieigenschaften.

Wichtig

Die Werte für alle diese Parameter müssen nicht in der Befehlszeile angegeben werden. Sie können auch in der Projektdatei angegeben werden. Wenn ein Parameter in der Befehlszeile und in der Projektdatei angegeben ist, hat der Befehlszeilenparameter Vorrang. Weitere Informationen über die Bereitstellung von Build-Eigenschaften in Ihrer Projektdatei finden Sie unter Build-Eigenschaften in Ihrer Projektdatei definieren.

Verwenden Sie zum Beispiel den folgenden Befehl, um ein .pkg auf einem Mac zu erstellen und zu signieren, um es ad-hoc an Benutzer*innen auf registrierten Geräten zu verteilen:

dotnet publish -f net8.0-maccatalyst -c Release -p:MtouchLink=SdkOnly -p:CreatePackage=true -p:EnableCodeSigning=true  -p:CodesignKey="Apple Development: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp (Ad-hoc)" -p:CodesignEntitlements="Platforms\MacCatalyst\Entitlements.plist" -p:UseHardenedRuntime=true

Hinweis

In .NET 8 wird für den Befehl dotnet publish standardmäßig die Konfiguration Release verwendet. Daher kann die Buildkonfiguration von der Befehlszeile weggelassen werden.

Veröffentlichen erstellt, signiert und verpackt die App und kopiert die .pkg in den Ordner bin/Release/net8.0-maccatalyst/publish/. Wenn Sie die App nur mit einer einzigen Architektur veröffentlichen, wird sie im Ordner bin/Release/net8.0-maccatalyst/{architecture}/publish/ veröffentlicht.

Während des Signaturvorgangs ist es möglicherweise erforderlich, Ihr Anmeldekennwort einzugeben und codesign die Ausführung zu gestatten:

Erlauben Sie Codesign, Ihre App auf Ihrem Mac zu signieren.

Weitere Informationen über den Befehl dotnet publish finden Sie unter dotnet publish.

Definieren von Buildeigenschaften in der Projektdatei

Eine Alternative zur Angabe von Build-Parametern auf der Befehlszeile besteht darin, sie in Ihrer Projektdatei in einem <PropertyGroup> anzugeben. In der folgenden Tabelle sind einige der üblichen Build-Eigenschaften aufgeführt:

Eigenschaft Wert
<ApplicationTitle> Der vom Benutzer sichtbare Name für die App.
<ApplicationId> Der eindeutige Bezeichner für die App, wie etwa com.companyname.mymauiapp.
<ApplicationVersion> Die Version des Builds, die eine Iteration der App identifiziert.
<ApplicationDisplayVersion> Die Versionsnummer der API.
<CodesignKey> Der Name des Codesignaturschlüssels. Legen Sie den Namen Ihres Verteilungszertifikats fest, wie in Keychain Access angezeigt.
<CodesignEntitlements> Der Pfad zur Berechtigungsdatei, die die von der App benötigten Berechtigungen angibt. Auf Platforms\MacCatalyst\Entitlements.plist festlegen.
<CodesignProvision> Name des Bereitstellungsprofils, das beim Signaturen verwendet werden soll
<CreatePackage> Legen Sie die Einstellung auf true fest, damit am Ende des Builds ein Paket (.pkg) für die App erstellt wird.
<EnableCodeSigning> Auf true setzen, damit Codesignieren aktiviert wird.
<MtouchLink> Der Verknüpfungsmodus für das Projekt, der None, SdkOnly oder Full sein kann.
<RuntimeIdentifier> Der Laufzeitbezeichner (RID) für das Projekt. Release-Builds von .NET MAUI Mac Catalyst-Apps verwenden standardmäßig maccatalyst-x64 und maccatalyst-arm64 als Laufzeitbezeichner, um universelle Apps zu unterstützen. Geben Sie maccatalyst-x64 an, oder maccatalyst-arm64, um nur eine einzelne Architektur zu unterstützen.
<UseHardenedRuntime> Setzen Sie den Wert auf true, um die gehärtete Laufzeit zu aktivieren, die für Mac Catalyst-Apps erforderlich ist, die außerhalb des Mac App Store vertrieben werden.

Eine vollständige Liste der Build-Eigenschaften finden Sie unter Projektdateieigenschaften.

Wichtig

Die Werte für diese Build-Eigenschaften müssen nicht in der Projektdatei angegeben werden. Sie können auch in der Befehlszeile angegeben werden, wenn Sie die App veröffentlichen. Auf diese Weise können Sie bestimmte Werte in Ihrer Projektdatei auslassen.

Das folgende Beispiel zeigt eine typische Eigenschaftsgruppe zum Erstellen und Signaturen Ihrer Mac Catalyst-App für die Ad-hoc-Verteilung an Benutzer auf registrierten Geräten:

<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
  <MtouchLink>SdkOnly</MtouchLink>
  <EnableCodeSigning>True</EnableCodeSigning>
  <CreatePackage>true</CreatePackage>
  <CodesignKey>Apple Development: John Smith (AY2GDE9QM7)</CodesignKey>
  <CodesignProvision>MyMauiApp (Ad-hoc)</CodesignProvision>
  <CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
  <UseHardenedRuntime>true</UseHardenedRuntime>
</PropertyGroup>

In diesem Beispiel <PropertyGroup> wird eine Bedingungsprüfung hinzugefügt, die verhindert, dass die Einstellungen verarbeitet werden, wenn die Bedingungsprüfung nicht bestanden wird. Bei der Konditionsprüfung werden zwei Punkte überprüft:

  1. Die Build-Konfiguration ist auf Release eingestellt.
  2. Das Zielframework wird auf etwas festgelegt, das den Text net8.0-maccatalyst enthält.
  3. Die Plattform ist auf AnyCPU festgelegt.

Wenn eine dieser Bedingungen nicht erfüllt ist, werden die Einstellungen nicht verarbeitet. Noch wichtiger ist, dass die Einstellungen <CodesignKey> und <CodesignProvision> nicht gesetzt sind, wodurch die App nicht signiert werden kann.

Nach dem Hinzufügen der oben genannten Eigenschaftsgruppe kann die App über die Befehlszeile auf einem Mac veröffentlicht werden, indem Sie ein Terminal öffnen und zu dem Ordner für Ihr .NET MAUI-Appsprojekt navigieren. Führen Sie dann den folgenden Befehl aus:

dotnet build -f net8.0-maccatalyst -c Release

Veröffentlichen erstellt, signiert und verpackt die App und kopiert die .pkg in den Ordner bin/Release/net8.0-maccatalyst/publish/.

Verteilen Ihrer App zu Testzwecken

Das .pkg kann an Benutzer auf registrierten Geräten verteilt werden, wo es durch einen Doppelklick auf die .pkg-Datei ausgeführt werden kann, um die App zu installieren.

Informationen zum sicheren Öffnen von Apps auf einem Mac finden Sie unter Apps sicher auf dem Mac öffnen auf support.apple.com.

Siehe auch