Veröffentlichen einer Mac Catalyst-App für den Vertrieb im Mac App Store
Die gängigste Methode zur Verteilung von Mac Catalyst-Apps an Benutzer*innen ist der Mac App Store. Apps werden im Mac 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.
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 zu verteilen, müssen Sie ein spezifisches Vertriebsbereitstellungsprofil erstellen. Mit diesem Profil kann die App für die Veröffentlichung digital signiert werden, sodass sie auf Macs installiert werden kann. Ein Verteilungsbereitstellungsprofil enthält eine App-ID und ein Verteilungszertifikat. Sie müssen ein Verteilungszertifikat erstellen, um sich oder Ihre Organisation zu identifizieren, falls Sie noch keines haben. Darüber hinaus müssen Sie ein Mac-Installationszertifikat erstellen, um das Installationspaket Ihrer App für die Einreichung im Mac App Store zu signieren.
Das Verfahren zur Bereitstellung einer .NET MAUI Mac Catalyst-App für den Vertrieb über den Mac App Store ist wie folgt:
- Erstellen Sie eine Anforderung zur Zertifikatsignierung. Weitere Informationen finden Sie unter Erstellen einer Zertifikatsignierungsanforderung.
- Ein Verteilungszertifikat erstellen Weitere Informationen finden Sie unter Verteilungszertifikat erstellen.
- Erstellen Sie ein Installer-Zertifikat. Weitere Informationen finden Sie unter Erstellen eines Installer-Zertifikats.
- Erstellen einer App-ID Weitere Informationen finden Sie unter Erstellen einer App ID.
- Konfigurieren der App ID. Weitere Informationen finden Sie unter Konfigurieren der App-ID.
- Erstellen eines Bereitstellungsprofils Zusätzliche Informationen finden Sie unter Ein Bereitstellungsprofil erstellen.
- Laden Sie Ihr Bereitstellungsprofil herunter. Weitere Informationen finden Sie unter Herunterladen Ihres Bereitstellungsprofils in Xcode.
Sobald die Bereitstellung abgeschlossen ist, sollten Sie Ihre App für die Veröffentlichung vorbereiten und sie dann mit dem folgenden Verfahren veröffentlichen:
- Fügen Sie die erforderlichen Berechtigungen zu Ihrer App hinzu. Weitere Informationen finden Sie unter Berechtigungen hinzufügen.
- Aktualisieren Sie die Datei Info.plist der App. Weitere Informationen finden Sie unter Info.plist aktualisieren.
- 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:
Starten Sie auf dem Mac Keychain Access.
Wählen Sie in Keychain Access das Menüelement Keychain Access > Zertifikatsassistent > Zertifikat von einer Zertifizierungsstelle anfordern… aus.
Geben Sie im Dialog Zertifikatsassistent eine E-Mail-Adresse in das Feld Benutzer-E-Mail-Adresse ein.
Geben Sie im Dialog Zertifikatsassistent einen Namen für den Schlüssel in das Feld Gemeinsamer Name ein.
Lassen Sie im Dialogfeld Zertifikatsassistent das Feld CA-E-Mail-Adresse leer.
Wählen Sie im Dialogfeld Zertifikatsassistent das Optionsfeld Auf Festplatte gespeichert aus und wählen Sie Weiter aus:
Speichern Sie die Zertifikatssignierungsanforderung an einem bekannten Ort.
Wählen Sie im Dialog Zertifikatsassistent die Schaltfläche Erledigt aus.
Schließen Sie den Schlüsselbundzugriff.
Ein Verteilungszertifikat erstellen
Mit der CSR können Sie ein Verteilungszertifikat erstellen, das Ihre Identität bestätigt. Das Distributionszertifikat muss unter Verwendung der Apple ID für Ihr Apple-Entwicklerkonto erstellt werden:
Melden Sie sich in einem Webbrowser bei Ihrem Apple-Entwicklerkonto an.
Wählen Sie in Ihrem Apple-Entwicklerkonto die Registerkarte Zertifikate, IDs und Profile aus.
Wählen Sie auf der Seite Zertifikate, Identifikatoren & Profile die Schaltfläche +, um ein neues Zertifikat zu erstellen.
Wählen Sie auf der Seite Ein neues Zertifikat erstellen das Optionsfeld Apple Distribution aus, bevor Sie die Schaltfläche Weiter auswählen:
Wählen Sie auf der Seite Erstellen eines neuen Zertifikats die Option Datei wählen aus:
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.Wählen Sie auf der Seite Erstellen eines neuen Zertifikats die Schaltfläche Weiter aus:
Wählen Sie auf der Seite Ihr Zertifikat herunterladen die Schaltfläche Herunterladen aus:
Die Zertifikatsdatei (eine Datei mit einer
.cer
-Erweiterung) wird an Ihren ausgewählten Speicherort heruntergeladen.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 Distribution:
Hinweis
Notieren Sie sich den vollständigen Zertifikatsnamen in Keychain Access. Sie wird beim Signaturen Ihrer App benötigt.
Erstellen eines Installationszertifikats
Mit der CSR können Sie ein Installationszertifikat generieren, das erforderlich ist, um das Installationspaket Ihrer App für die Einreichung im Mac App Store zu signieren. Das Installationszertifikat muss mit der Apple ID für Ihr Apple-Entwicklerkonto erstellt werden:
Wählen Sie in Ihrem Apple-Entwicklerkonto die Registerkarte Zertifikate, IDs und Profile aus.
Wählen Sie auf der Seite Zertifikate, Identifikatoren & Profile die Schaltfläche +, um ein neues Zertifikat zu erstellen.
Wählen Sie auf der Seite Ein neues Zertifikat erstellen das Optionsfeld Mac Installer Distribution aus, bevor Sie die Schaltfläche Weiter auswählen:
Wählen Sie auf der Seite Erstellen eines neuen Zertifikats die Option Datei wählen aus:
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.Wählen Sie auf der Seite Erstellen eines neuen Zertifikats die Schaltfläche Weiter aus:
Wählen Sie auf der Seite Ihr Zertifikat herunterladen die Schaltfläche Herunterladen aus:
Die Zertifikatsdatei (eine Datei mit einer
.cer
-Erweiterung) wird an Ihren ausgewählten Speicherort heruntergeladen.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 Keychain Access und beginnt mit 3rd Party Mac Developer Installer:
Hinweis
Notieren Sie sich den vollständigen Zertifikatsnamen in Keychain Access. Sie wird beim Signaturen Ihrer App benötigt.
Erstellen eines Verteilungsprofils
Mit einem Distributionsbereitstellungsprofil kann Ihre .NET MAUI Mac Catalyst-App für die Freigabe digital signiert werden, sodass sie auf einem anderen Mac installiert werden kann. Ein Bereitstellungsprofil für die Verteilung im Mac App Store 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
Navigieren Sie in Ihrem Apple-Developerkonto zu Zertifikaten, IDs und Profilen.
Wählen Sie auf der Seite Zertifikate, Bezeichner und Profile die Registerkarte Bezeichner aus.
Wählen Sie auf der Seite Bezeichner die Schaltfläche + aus, um eine neue App-ID zu erstellen.
Wählen Sie auf der Seite Einen neuen Bezeichner registrieren das Optionsfeld App IDs aus, bevor Sie die Schaltfläche Weiter auswählen:
Wählen Sie auf der Seite Einen neuen Bezeichner registrieren App aus, bevor Sie die Schaltfläche Weiter auswählen.
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:
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.
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.
Wählen Sie auf der Seite Registrieren einer App-ID die Schaltfläche Weiter aus.
Auf der Seite Ihre App-ID bestätigen wählen Sie die Schaltfläche Registrieren aus.
Konfigurieren der App ID
Standardmäßig verwendet eine Mac Catalyst App dieselbe Bundle-ID wie eine iOS App, sodass Sie die Apps zusammen als Universalkauf im Mac App Store anbieten können. Alternativ können Sie auch eine eindeutige Bundle-ID angeben, um die App als separates Produkt anzubieten.
So konfigurieren Sie die App ID:
Navigieren Sie in Ihrem Apple-Developerkonto zu Zertifikaten, IDs und Profilen.
Wählen Sie auf der Seite Zertifikate, Bezeichner und Profile die Registerkarte Bezeichner aus.
Wählen Sie auf der Seite Bezeichner die gerade erstellte App-ID aus.
Scrollen Sie auf der Seite Ihre App-ID-Konfiguration bearbeiten bis zum Ende der Seite und aktivieren Sie das Kontrollkästchen Mac Catalyst. Wählen Sie dann die Schaltfläche Konfigurieren aus:
Wählen Sie im Popup-Fenster Bündel-ID für Mac Catalyst konfigurieren das Optionsfeld Vorhandene Mac-App-ID verwenden aus. Wählen Sie in der Dropdown-Liste App-ID entweder die App-ID für die iOS-Partner-App von Mac Catalyst oder die App-ID aus, die Sie erstellt haben, wenn Sie die Mac Catalyst-App als separates Produkt anbieten. Wählen Sie dann die Schaltfläche Speichern aus:
Wählen Sie auf der Seite Ihre App-ID-Konfiguration bearbeiten die Schaltfläche Speichern aus:
Wählen Sie im Popup App-Funktionen modifizieren die Schaltfläche Bestätigen aus:
Erstellen eines Bereitstellungsprofils
Sobald die App-ID erstellt und konfiguriert ist, sollten Sie ein Bereitstellungsprofil für die Verteilung erstellen. Mit diesem Profil kann die App für die Veröffentlichung digital signiert werden, sodass sie auf Macs installiert werden kann.
So erstellen Sie ein Bereitstellungsprofil für die Verteilung im Mac App Store:
Wählen Sie auf der Seite "Zertifikate, Bezeichner und Profile" Ihres Apple-Developerkontos die Registerkarte "Profile" aus.
Auf der Registerkarte Profile klicken Sie auf die Schaltfläche +, um ein neues Profil zu erstellen.
Wählen Sie auf der Seite Ein neues Bereitstellungsprofil registrieren das Optionsfeld Mac App Store aus, bevor Sie auf die Schaltfläche Weiter klicken:
Wählen Sie auf der Seite Bereitstellungsprofil erzeugen das Optionsfeld Mac 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 auf der Seite Ein Bereitstellungsprofil erstellen das Optionsfeld aus, das Ihrem Verteilungszertifikat entspricht, bevor Sie auf die Schaltfläche Weiter klicken:
Geben Sie auf der Seite Ein Bereitstellungsprofil erstellen einen Namen für das Provisioning-Profil ein, bevor Sie auf die Schaltfläche Erstellen klicken:
Hinweis
Notieren Sie sich den Namen des Bereitstellungsprofils, da es beim Signaturen Ihrer App erforderlich ist.
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:
Starten Sie auf Ihrem Mac Xcode.
Wählen Sie in Xcode das Menüelement Xcode > Einstellungen … aus.
Wählen Sie im Dialog Einstellungen die Registerkarte Konten aus.
Klicken Sie auf der Registerkarte Konten auf die Schaltfläche +, um Ihren Apple-Entwicklerkonto zu Xcode hinzuzufügen:
Wählen Sie im Popup-Fenster Kontotyp die Option Apple ID aus und klicken Sie anschließend auf die Schaltfläche Weiter:
Geben Sie im Anmeldefenster Ihre Apple ID ein und klicken Sie auf die Schaltfläche Weiter.
Geben Sie im Anmeldefenster Ihr Apple ID-Kennwort ein und klicken Sie auf die Schaltfläche Weiter:
Klicken Sie auf der Registerkarte Konten auf die Schaltfläche Zertifikate verwalten…, um sicherzustellen, dass Ihr Verteilungszertifikat heruntergeladen wurde.
Klicken Sie auf der Registerkarte Konten auf die Schaltfläche Manuelle Profile herunterladen, um Ihre Provisionierungsprofile herunterzuladen:
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.
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 veröffentlichen, sollten Sie die Datei Info.plist mit zusätzlichen Informationen aktualisieren, um sicherzustellen, dass die App in den Mac App Store hochgeladen werden kann, und um einen reibungslosen Mac App Store-Prüfprozess zu gewährleisten.
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.
Festlegen des Copyright-Schlüssels
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.
Festlegen der App-Kategorie
Kategorien helfen Benutzern, Ihre App im Mac App Store zu finden. Sie können die primäre Kategorie der App in Ihrer Info.plist-Datei festlegen:
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
Für weitere Informationen siehe LSApplicationCategoryType auf developer.apple.com.
Hinweis
Die Hauptkategorie Ihrer App muss mit der Hauptkategorie übereinstimmen, die Sie in App Store Connect festgelegt haben.
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. Jedes Mal, wenn Sie eine Version Ihrer App bei App Store Connect einreichen, wird sie einer Prüfung auf Einhaltung der Verschlüsselungsexportbestimmungen unterzogen. Um zu vermeiden, dass App Store Connect Ihnen Fragen stellt, um Sie durch die Überprüfung zu führen, können Sie die erforderlichen Informationen in der Info.plist-Datei Ihrer App angeben.
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:EnablePackageSigning |
Legen Sie diese Einstellung auf true fest, sodass das erstellte Paket signiert 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:PackageSigningKey |
Der Signaturschlüssel des Pakets, der beim Signaturen des Pakets verwendet werden soll. Stellen Sie den Namen Ihres Installationszertifikats ein, wie er in Keychain Access angezeigt wird. |
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. |
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, das über den Mac App Store vertrieben werden soll:
dotnet publish -f net8.0-maccatalyst -c Release -p:MtouchLink=SdkOnly -p:CreatePackage=true -p:EnableCodeSigning=true -p:EnablePackageSigning=true -p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp" -p:CodesignEntitlements="Platforms\MacCatalyst\Entitlements.plist" -p:PackageSigningKey="3rd Party Mac Developer Installer: John Smith (AY2GDE9QM7)"
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 müssen Sie möglicherweise Ihr Anmeldekennwort eingeben und die Ausführung von codesign
und productbuild
erlauben:
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. |
<EnablePackageSigning> |
Legen Sie diese Einstellung auf true fest, sodass das erstellte Paket signiert wird. |
<MtouchLink> |
Der Verknüpfungsmodus für das Projekt, der None , SdkOnly oder Full sein kann. |
<PackageSigningKey> |
Der Signaturschlüssel des Pakets, der beim Signaturen des Pakets verwendet werden soll. Stellen Sie den Namen Ihres Installationszertifikats ein, wie er in Keychain Access angezeigt wird. |
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 Eigenschaftengruppe zum Erstellen und Signaturen Ihrer Mac Catalyst-App für die Mac App Store-Verteilung:
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
<MtouchLink>SdkOnly</MtouchLink>
<EnableCodeSigning>True</EnableCodeSigning>
<EnablePackageSigning>true</EnablePackageSigning>
<CreatePackage>true</CreatePackage>
<CodesignKey>Apple Distribution: John Smith (AY2GDE9QM7)</CodesignKey>
<CodesignProvision>MyMauiApp</CodesignProvision>
<CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
<PackageSigningKey>3rd Party Mac Developer Installer: John Smith (AY2GDE9QM7)</PackageSigningKey>
</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:
- Die Build-Konfiguration ist auf
Release
eingestellt. - Das Zielframework wird auf etwas festgelegt, das den Text
net8.0-maccatalyst
enthält. - 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>
, <CodesignProvision>
und <PackageSigningKey>
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
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/.
Hochladen in den Mac App Store
Sobald eine App mit einem Apple Distribution Zertifikat signiert wurde, kann sie nicht mehr lokal ausgeführt werden. Stattdessen sollte sie in App Store Connect hochgeladen werden, wo sie neu signiert wird, um eine lokale Ausführung zu ermöglichen.
Um Ihre App über den Mac App Store oder TestFlight zu vertreiben, müssen Sie einen App-Datensatz in App Store Connect erstellen. Dieser Datensatz enthält alle Informationen über die App, wie sie im App Store erscheinen wird, sowie alle Informationen, die für die Verwaltung der App während des gesamten Vertriebsprozesses erforderlich sind. Weitere Informationen finden Sie unter Erstellen eines App-Eintrags auf developer.apple.com.
Transporter kann verwendet werden, um Ihre App im Mac App Store einzureichen. Es wird auch helfen, Fehler in den App-Paketen zu erkennen, die eine erfolgreiche Übermittlung verhindern.
Siehe auch
- Vorbereitung Ihrer App für die Verteilung auf developer.apple.com