Sdílet prostřednictvím


Publikování aplikace Mac Catalyst pro distribuci mimo Mac App Store

Alternativou k distribuci aplikací Mac Catalyst prostřednictvím Mac App Storu je jejich distribuce mimo Mac App Store. Díky tomuto přístupu je možné aplikaci Mac Catalyst hostovat na místě, kde si zvolíte stažení. Tento distribuční přístup můžou používat členové programu Apple Developer Program a Program Apple Developer Enterprise.

Distribuce aplikace Mac Catalyst vyžaduje, aby byla aplikace zřízena pomocí zřizovacího profilu. Zřizovací profily jsou soubory, které obsahují informace o podepisování kódu, a také identitu aplikace a její zamýšlený distribuční mechanismus.

Pokud chcete distribuovat multiplatformní uživatelské rozhraní aplikace .NET MAUI (.NET MAUI) Mac Catalyst mimo Mac App Store, budete muset vytvořit distribuční zřizovací profil specifický pro něj. Tento profil umožňuje digitálně podepsat aplikaci pro vydání, aby ji bylo možné nainstalovat na Počítače Mac. Profil zřizování distribuce obsahuje ID aplikace a certifikát aplikace id vývojáře. Pokud ho ještě nemáte, budete muset vytvořit certifikát aplikace ID vývojáře, abyste se identifikovali sami nebo ve vaší organizaci. Kromě toho budete muset vytvořit certifikát instalačního programu id vývojáře, který podepíše instalační balíček vaší aplikace.

Proces zřízení aplikace .NET MAUI Mac Catalyst pro distribuci mimo Mac App Store je následující:

  1. Vytvořte dvě žádosti o podepsání certifikátu. Další informace najdete v tématu Vytvoření žádosti o podepsání certifikátu.
  2. Vytvořte certifikát aplikace ID vývojáře. Další informace najdete v tématu Vytvoření certifikátu aplikace ID vývojáře.
  3. Vytvořte certifikát instalačního programu ID vývojáře. Další informace najdete v tématu Vytvoření certifikátu instalačního programu ID vývojáře.
  4. Vytvořte ID aplikace. Další informace najdete v tématu Vytvoření ID aplikace.
  5. Vytvoření zřizovacího profilu Další informace najdete v tématu Vytvoření zřizovacího profilu.
  6. Stáhněte si zřizovací profil. Další informace najdete v tématu Stažení zřizovacího profilu v Xcode.

Důležité

Tento článek ukazuje zřizování distribuce mimo Mac App Store pomocí vývojářského účtu Apple, který je součástí programu Apple Developer Program. Můžete ho také použít pro vývojářský účet Apple, který je součástí programu Apple Developer Enterprise Program, protože požadované kroky jsou z velké části identické.

Po dokončení zřizování byste měli aplikaci připravit na publikování, publikovat ji a notarizovat následujícím procesem:

  1. Volitelně můžete do aplikace přidat nároky. Další informace najdete v tématu Přidání nároků.
  2. Aktualizujte soubor Info.plist aplikace. Další informace naleznete v tématu Aktualizace Info.plist.
  3. Zakažte ověření podpisu kódu pro vaši aplikaci. Další informace najdete v tématu Zakázání ověření podpisu kódu.
  4. Publikujte aplikaci pomocí příkazového řádku. Další informace najdete v tématu Publikování pomocí příkazového řádku.
  5. Notarize your app. Další informace najdete v tématu Notarize your app.

Vytvoření žádosti o podepsání certifikátu

Před vytvořením distribučního certifikátu budete nejprve muset vytvořit žádost o podepsání certifikátu (CSR) v Klíčence accessu na Macu:

  1. Na macu spusťte Keychain Access.

  2. V okně Přístup ke klíčence vyberte položku nabídky Keychain Access > Certificate Assistant > požádat o certifikát od certifikační autority... .

  3. V dialogovém okně Pomocníka s certifikáty zadejte e-mailovou adresu do pole E-mailová adresa uživatele.

  4. V dialogovém okně Pomocníka s certifikáty zadejte název klíče do pole Běžný název .

  5. V dialogovém okně Pomocníka s certifikáty nechejte pole E-mailová adresa certifikační autority prázdné.

  6. V dialogovém okně Pomocníka s certifikáty zvolte přepínač Uložit na disk a vyberte Pokračovat:

    Certificate assistant dialog.

  7. Uložte žádost o podepsání certifikátu do známého umístění.

  8. V dialogovém okně Pomocníka s certifikáty vyberte tlačítko Hotovo .

  9. Zavřete přístup ke klíčence.

Tento proces opakujte a vytvořte druhou žádost o podepsání certifikátu. První CSR se použije k vytvoření certifikátu aplikace ID vývojáře. Druhá se použije k vytvoření certifikátu instalačního programu ID vývojáře.

Důležité

Nemůžete použít stejnou žádost o podepsání certifikátu k vytvoření certifikátu aplikace ID vývojáře a certifikátu instalačního programu ID vývojáře.

Vytvoření certifikátu aplikace ID vývojáře

CSR umožňuje vygenerovat certifikát ID vývojáře, který potvrzuje vaši identitu. Certifikát ID vývojáře se musí vytvořit pomocí Apple ID pro váš vývojářský účet Apple:

  1. Ve webovém prohlížeči se přihlaste ke svému vývojářskému účtu Apple.

  2. Ve svém vývojářském účtu Apple vyberte kartu Certifikáty, ID a Profily .

  3. Na stránce Certifikáty, Identifikátory a profily vyberte + tlačítko pro vytvoření nového certifikátu.

  4. Na stránce Vytvořit nový certifikát vyberte přepínač Aplikace ID vývojáře před výběrem tlačítka Pokračovat:

    Create a Developer ID Application certificate.

  5. Na stránce Vytvořit nový certifikát vyberte přepínač G2 Sub-CA a pak vyberte Zvolit soubor:

    Upload your certificate signing request for a Developer ID Application certificate.

  6. V dialogovém okně Zvolit soubory k nahrání vyberte první soubor žádosti o certifikát, který jste předtím vytvořili (soubor s příponou .certSigningRequest souboru) a pak vyberte Nahrát.

  7. Na stránce Vytvořit nový certifikát vyberte tlačítko Pokračovat:

    Continue to generate your distribution certificate.

  8. Na stránce Stáhnout certifikát vyberte tlačítko Stáhnout:

    Download your Developer ID Application certificate.

    Soubor certifikátu (soubor s příponou .cer ) se stáhne do zvoleného umístění.

  9. Na počítači Mac poklikejte na stažený soubor certifikátu a nainstalujte certifikát do klíčenky. Certifikát se zobrazí v kategorii Moje certifikáty v accessu ke klíčence a začíná aplikací ID vývojáře:

    Keychain Access showing Developer ID Application certificate.

    Poznámka:

    Poznamenejte si úplný název certifikátu v klíčence Accessu. Při podepisování aplikace se bude vyžadovat.

Vytvoření certifikátu instalačního programu ID vývojáře

CSR umožňuje vygenerovat certifikát instalačního programu ID vývojáře, který je nutný k podepsání instalačního balíčku vaší aplikace. Certifikát instalačního programu se musí vytvořit pomocí Apple ID pro váš vývojářský účet Apple:

  1. Ve svém vývojářském účtu Apple vyberte kartu Certifikáty, ID a Profily .

  2. Na stránce Certifikáty, Identifikátory a profily vyberte + tlačítko pro vytvoření nového certifikátu.

  3. Na stránce Vytvořit nový certifikát vyberte přepínač Instalační program ID vývojáře před výběrem tlačítka Pokračovat:

    Create a Developer ID Installer certificate.

  4. Na stránce Vytvořit nový certifikát vyberte přepínač G2 Sub-CA a pak vyberte Zvolit soubor:

    Upload your certificate signing request for a Developer ID Installer certificate.

  5. V dialogovém okně Zvolit soubory k nahrání vyberte druhý soubor žádosti o certifikát, který jste předtím vytvořili (soubor s příponou .certSigningRequest souboru) a pak vyberte Nahrát.

  6. Na stránce Vytvořit nový certifikát vyberte tlačítko Pokračovat:

    Continue to generate your installer certificate.

  7. Na stránce Stáhnout certifikát vyberte tlačítko Stáhnout:

    Download your distribution certificate.

    Soubor certifikátu (soubor s příponou .cer ) se stáhne do zvoleného umístění.

  8. Na počítači Mac poklikejte na stažený soubor certifikátu a nainstalujte certifikát do klíčenky. Certifikát se zobrazí v kategorii Moje certifikáty v accessu ke klíčence a začíná instalačním programem ID vývojáře:

    Keychain Access showing installer certificate.

    Poznámka:

    Poznamenejte si úplný název certifikátu v klíčence Accessu. Při podepisování aplikace se bude vyžadovat.

Vytvoření distribučního profilu

Profil zřizování distribuce umožňuje digitální podepsání aplikace .NET MAUI Mac Catalyst, aby ji bylo možné nainstalovat na jiný Mac. Zřizovací profil pro distribuci mimo Mac App Store obsahuje ID aplikace a certifikát aplikace ID vývojáře.

Vytvoření ID aplikace

K identifikaci aplikace, kterou distribuujete, se vyžaduje ID aplikace. ID aplikace je podobné řetězci reverzního DNS, který jednoznačně identifikuje aplikaci a měl by být shodný s identifikátorem sady pro vaši aplikaci. K testování můžete použít stejné ID aplikace, které jste použili při nasazování aplikace do zařízení.

Existují dva typy ID aplikace:

  • Zástupný znak. ID aplikace se zástupným znakem umožňuje použít jedno ID aplikace ke shodě s více aplikacemi a obvykle má tvar com.domainname.*. ID aplikace se zástupným znakem se dá použít k distribuci více aplikací a mělo by se použít pro aplikace, které nepovolují funkce specifické pro aplikace.
  • Explicitní. Explicitní ID aplikace je jedinečné pro jednu aplikaci a obvykle má tvar com.domainname.myid. Explicitní ID aplikace umožňuje distribuci jedné aplikace s odpovídajícím identifikátorem sady. Explicitní ID aplikací se obvykle používají pro aplikace, které umožňují funkce specifické pro aplikace, jako je Apple Pay nebo Game Center. Další informace o možnostech najdete v tématu Možnosti.

Vytvoření nového ID aplikace:

  1. Ve svém vývojářském účtu Apple přejděte na Certifikáty, ID a profily.

  2. Na stránce Certifikáty, Identifikátory a Profily vyberte kartu Identifikátory.

  3. Na stránce Identifikátory vyberte + tlačítko a vytvořte nové ID aplikace.

  4. Na stránce Zaregistrovat nový identifikátor vyberte přepínač ID aplikací před výběrem tlačítka Pokračovat:

    Create an App ID.

  5. Na stránce Zaregistrovat nový identifikátor vyberte před výběrem tlačítka Pokračovat aplikaci:

    Register an App ID.

  6. Na stránce Registrace ID aplikace zadejte popis a vyberte přepínač Explicit nebo Wildcard Bundle ID. Pak zadejte ID sady prostředků aplikace v obráceném formátu DS:

    Specify the bundle identifier for the app.

    Důležité

    ID sady, které zadáte, musí odpovídat identifikátorusady v souboru Info.plist v projektu aplikace.

    Identifikátor sady pro aplikaci .NET MAUI je uložen v souboru projektu jako vlastnost ID aplikace:

    • V sadě Visual Studio klikněte v Průzkumník řešení pravým tlačítkem myši na projekt aplikace .NET MAUI a vyberte Vlastnosti. Pak přejděte na kartu MauI Sdílené > obecné . Pole ID aplikace obsahuje identifikátor sady.
    • V Visual Studio pro Mac v okně řešení klikněte pravým tlačítkem na projekt aplikace .NET MAUI a vyberte Vlastnosti. Potom v okně Vlastnosti projektu vyberte kartu Informace o aplikaci sestavení>. Pole ID aplikace obsahuje identifikátor sady.

    Při aktualizaci hodnoty pole ID aplikace se automaticky aktualizuje hodnota identifikátorusady v souboru Info.plist.

  7. Na stránce Zaregistrovat ID aplikace vyberte všechny možnosti, které aplikace používá. Na této stránce i v souboru Entitlements.plist v projektu aplikace musí být nakonfigurované všechny možnosti. Další informace naleznete v tématu Schopnosti a nároky.

  8. Na stránce Zaregistrovat ID aplikace vyberte tlačítko Pokračovat.

  9. Na stránce Potvrdit ID aplikace vyberte tlačítko Zaregistrovat.

Vytvoření zřizovacího profilu

Po vytvoření ID aplikace byste měli vytvořit distribuční zřizovací profil. Tento profil umožňuje digitálně podepsat aplikaci pro vydání, aby ji bylo možné nainstalovat na Počítače Mac.

Vytvoření zřizovacího profilu pro distribuci mimo Mac App Store:

  1. Na stránce Certifikáty, Identifikátory a profily vašeho účtu apple pro vývojáře vyberte kartu Profily .

  2. Na kartě Profily kliknutím na + tlačítko vytvořte nový profil.

  3. Na stránce Zaregistrovat nový profil zřizování vyberte přepínač ID vývojáře před kliknutím na tlačítko Pokračovat:

    Register a provisioning profile distribution outside the App Store.

  4. Na stránce Vygenerovat zřizovací profil vyberte přepínač Mac Catalyst. Potom v rozevíracím seznamu ID aplikace vyberte ID aplikace, které jste vytvořili dříve, než kliknete na tlačítko Pokračovat :

    Select your App ID.

  5. Na stránce Vygenerovat zřizovací profil vyberte přepínač odpovídající vašemu distribučnímu certifikátu před kliknutím na tlačítko Pokračovat:

    Select your distribution certificate.

  6. Na stránce Vygenerovat zřizovací profil zadejte název zřizovacího profilu před kliknutím na tlačítko Generovat :

    Generate the provisioning profile.

    Poznámka:

    Poznamenejte si název zřizovacího profilu, protože se bude při podepisování aplikace vyžadovat.

  7. Na stránce Vygenerovat zřizovací profil můžete volitelně kliknutím na tlačítko Stáhnout stáhnout zřizovací profil.

    Poznámka:

    Teď není nutné stáhnout zřizovací profil. Místo toho to uděláte v Xcode.

Stažení zřizovacího profilu v Xcode

Po vytvoření zřizovacího profilu v účtu Apple Developer si ho Xcode může stáhnout, aby byl k dispozici pro podepisování vaší aplikace:

  1. Na macu spusťte Xcode.

  2. V Xcode vyberte položku nabídky Xcode Preferences... (Předvolby Xcode>).

  3. V dialogovém okně Předvolby vyberte kartu Účty .

  4. Na kartě Účty klikněte na + tlačítko a přidejte svůj vývojářský účet Apple do Xcode:

    Xcode Accounts dialog in preferences.

  5. V místní nabídce typu účtu vyberte Apple ID a potom klikněte na tlačítko Pokračovat :

    Xcode select the type of account you'd like to add popup.

  6. V místní nabídce pro přihlášení zadejte Apple ID a klikněte na tlačítko Další .

  7. V místní nabídce pro přihlášení zadejte heslo Apple ID a klikněte na tlačítko Další :

    Xcode Apple account sign-in.

  8. Na kartě Účty klikněte na tlačítko Spravovat certifikáty... a ujistěte se, že byl váš distribuční certifikát stažen.

  9. Na kartě Účty klikněte na tlačítko Stáhnout ruční profily a stáhněte si zřizovací profily:

    Xcode Apple Developer Program account details.

  10. Počkejte, až se stahování dokončí, a pak Xcode zavřete.

Přidání nároků

Sandbox aplikací společnosti Apple omezuje přístup k systémovým prostředkům a uživatelským datům v aplikacích pro Mac, aby obsahoval poškození, pokud dojde k ohrožení zabezpečení aplikace. Volitelně je možné povolit aplikace Mac Catalyst, které jsou distribuovány mimo Mac App Store.

Toho lze dosáhnout přidáním souboru Entitlements.plist do složky Platforms/MacCatalyst projektu aplikace .NET MAUI:

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

Oprávnění sandboxu aplikace je definováno pomocí com.apple.security.app-sandbox klíče typu boolean. Informace o sandboxu aplikací najdete v tématu Ochrana uživatelských dat pomocí Sandboxu aplikací na developer.apple.com. Informace o oprávnění sandboxu aplikace najdete v tématu Oprávnění sandboxu aplikace.

Pokud vaše aplikace otevře odchozí síťová připojení, budete muset do souboru Entitlements.plist přidat com.apple.security.network.client také klíč typuboolean:

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

Informace o oprávnění odchozích síťových připojení najdete na webu com.apple.security.network.client na developer.apple.com.

Aktualizace souboru Info.plist

Před publikováním aplikace byste měli aktualizovat soubor Info.plist s dalšími informacemi.

Určení idiomu uživatelského rozhraní

Aplikace Mac Catalyst může běžet v iPadu nebo Mac uživatelského rozhraní idiom:

  • IDiom uživatelského rozhraní iPadu říká macOS, aby škálovat uživatelské rozhraní aplikace tak, aby odpovídalo prostředí zobrazení Mac při zachování vzhledu podobného iPadu.
  • Idiom uživatelského rozhraní Systému Mac nenasahuje měřítko uživatelského rozhraní aplikace tak, aby odpovídalo prostředí pro zobrazení macu. Některé ovládací prvky mění jejich velikost a vzhled a interakce s nimi je stejná jako interakce s ovládacími AppKit prvky.

Ve výchozím nastavení aplikace .NET MAUI Mac Catalyst používají idiom uživatelského rozhraní iPad. Pokud se jedná o požadované chování, ujistěte se, že soubor Info.plist aplikace jako hodnotu UIDeviceFamily klíče určuje jenom 2:

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

Pokud chcete přijmout idiom uživatelského rozhraní Mac, aktualizujte soubor Info.plist aplikace tak, aby jako hodnotu UIDeviceFamily klíče zadal 6:

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

Další informace o idiomy uživatelského rozhraní Mac Catalyst naleznete v tématu Určení idiom uživatelského rozhraní pro aplikaci Mac Catalyst.

Nastavení výchozího jazyka a oblasti aplikace

CFBundleDevelopmentRegion Nastavte klíč v souboru Info.plist vaší aplikace na string hodnotu, která představuje nativní oblast vývoje lokalizace:

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

Hodnota klíče by měla být návrhátorem jazyka s volitelným designátorem oblasti. Další informace naleznete v tématu CFBundleDevelopmentRegion na developer.apple.com.

NSHumanReadableCopyright Nastavte klíč v souboru Info.plist vaší aplikace na string hodnotu, která představuje oznámení o autorských právech pro člověka čitelné pro vaši aplikaci:

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

Další informace naleznete v tématu NS HumanReadableCopyright na developer.apple.com.

Deklarace použití šifrování vaší aplikace

Pokud vaše aplikace používá šifrování a plánujete ji distribuovat mimo USA nebo Kanadu, podléhá požadavkům na dodržování předpisů pro export v USA. Informace o tom, jak aplikace používá šifrování, můžete zadat v souboru Info.plist .

Toho dosáhnete tak, že do souboru Info.plist vaší aplikace přidáte ITSAppUsesNonExemptEncryption klíč s boolean hodnotou, která označuje, jestli vaše aplikace používá šifrování:

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

Další informace naleznete v tématu Dodržování předpisů pro export šifrování v developer.apple.com.

Zakázání ověření podpisu kódu

Když se v současné době pokusíte publikovat aplikaci .NET MAUI Mac Catalyst pro distribuci mimo Mac App Store za předpokladu, že jste splnili požadavky zřizování, zobrazí se chyba o codesign ukončení s kódem 3:

/usr/local/share/dotnet/packs/Microsoft.MacCatalyst.Sdk/16.2.1040/tools/msbuild/iOS/Xamarin.Shared.targets(1930,3): error MSB6006: "codesign" exited with code 3. [/Users/davidbritch/Projects/MyMauiApp/MyMauiApp/MyMauiApp.csproj::TargetFramework=net8.0-maccatalyst]

I když codesign se úspěšně podepíše aplikace, _CodesignVerify cíl se nepodaří ověřit podpis kódu:

test-requirement: code failed to satisfy specified code requirement(s)

Kvůli tomuto selhání se neprodukuje soubor .pkg .

Proto je v současné době nutné na konec souboru projektu přidat následující cíl sestavení, aby se zakázalo ověření podpisu kódu:

<Project Sdk="Microsoft.NET.Sdk">
  ...
  <Target Name="_SkipCodesignVerify" BeforeTargets="_CodesignVerify" AfterTargets="_CodesignAppBundle">  
    <PropertyGroup>    
      <_RequireCodeSigning>false</_RequireCodeSigning>  
    </PropertyGroup>
  </Target>
</Project>

Publikování pomocí příkazového řádku

Pokud chcete publikovat aplikaci Mac Catalyst z příkazového řádku na Macu, otevřete terminál a přejděte do složky projektu aplikace .NET MAUI. dotnet publish Spusťte příkaz a zadejte následující parametry:

Parametr Hodnota
-f nebo --framework Cílová architektura, která je net8.0-maccatalyst.
-c nebo --configuration Konfigurace sestavení, což je Release.
-p:MtouchLink Režim propojení projektu, který může být None, SdkOnlynebo Full.
-p:CreatePackage Nastaví se tak true , aby se pro aplikaci na konci sestavení vytvořil balíček (.pkg).
-p:EnableCodeSigning Nastaví se tak true , aby bylo povoleno podepisování kódu.
-p:EnablePackageSigning Nastaví se tak true , aby se vytvořený balíček podepsal.
-p:CodesignKey Název podpisového klíče kódu. Nastavte na název distribučního certifikátu, jak je zobrazeno v Accessu ke klíčence.
-p:CodesignProvision Profil zřizování, který se má použít při podepisování sady aplikací.
-p:CodesignEntitlements Cesta k souboru nároků, který určuje nároky, které aplikace vyžaduje. Nastavte na Platforms\MacCatalyst\Entitlements.plist.
-p:PackageSigningKey Podpisový klíč balíčku, který se má použít při podepisování balíčku. Nastavte na název certifikátu instalačního programu, jak je znázorněno v přístupi ke klíčence.
-p:RuntimeIdentifier Identifikátor modulu runtime (RID) projektu. Vydané buildy aplikací .NET MAUI Mac Catalyst se standardně používají maccatalyst-x64 a maccatalyst-arm64 jako identifikátory modulu runtime podporují univerzální aplikace. Pokud chcete podporovat pouze jednu architekturu, zadejte maccatalyst-x64 nebo maccatalyst-arm64.
-p:UseHardenedRuntime Nastavte na true povolení posíleného modulu runtime, který je nutný pro aplikace Mac Catalyst, které jsou distribuovány mimo Mac App Store.

Upozorňující

Pokus o publikování řešení .NET MAUI způsobí dotnet publish , že se příkaz pokusí publikovat každý projekt v řešení jednotlivě, což může způsobit problémy při přidání dalších typů projektů do řešení. dotnet publish Proto by měl být příkaz vymezený na váš projekt aplikace .NET MAUI.

Další parametry sestavení je možné zadat na příkazovém řádku, pokud nejsou zadané v <PropertyGroup> souboru projektu. V následující tabulce jsou uvedeny některé běžné parametry:

Parametr Hodnota
-p:ApplicationTitle Jméno viditelné uživatelem aplikace
-p:ApplicationId Jedinečný identifikátor aplikace, například com.companyname.mymauiapp.
-p:ApplicationVersion Verze sestavení, která identifikuje iteraci aplikace.
-p:ApplicationDisplayVersion Číslo verze aplikace
-p:RuntimeIdentifier Identifikátor modulu runtime (RID) projektu. Vydané buildy aplikací .NET MAUI Mac Catalyst se standardně používají maccatalyst-x64 a maccatalyst-arm64 jako identifikátory modulu runtime podporují univerzální aplikace. Pokud chcete podporovat pouze jednu architekturu, zadejte maccatalyst-x64 nebo maccatalyst-arm64.

Úplný seznam vlastností sestavení najdete v tématu Vlastnosti souboru projektu.

Důležité

Hodnoty pro všechny tyto parametry nemusí být zadané na příkazovém řádku. Dají se také zadat v souboru projektu. Pokud je parametr zadaný na příkazovém řádku a v souboru projektu, má přednost parametr příkazového řádku. Další informace o poskytování vlastností sestavení v souboru projektu naleznete v tématu Definování vlastností sestavení v souboru projektu.

K sestavení a podepsání souboru .pkg na Macu použijte například následující příkaz pro distribuci mimo Mac App Store:

dotnet publish -f net8.0-maccatalyst -c Release -p:MtouchLink=SdkOnly -p:CreatePackage=true -p:EnableCodeSigning=true -p:EnablePackageSigning=true -p:CodesignKey="Developer ID Application: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp (Non-App Store)" -p:CodesignEntitlements="Platforms\MacCatalyst\Entitlements.plist" -p:PackageSigningKey="Developer ID Installer: John Smith (AY2GDE9QM7)" -p:UseHardenedRuntime=true

Poznámka:

V .NET 8 se příkaz dotnet publish ve výchozím nastavení nastaví na Release konfiguraci. Proto je možné konfiguraci sestavení z příkazového řádku vynechat.

Publikování sestavení, podpisů a balíčků aplikace a následné zkopírování souboru .pkg do složky bin/Release/net8.0-maccatalyst/publish/ . Pokud aplikaci publikujete jenom pomocí jedné architektury, publikuje se do složky bin/Release/net8.0-maccatalyst/{architecture}/publish/ .

Během procesu podepisování je možná nutné zadat své přihlašovací heslo a povolit codesign a productbuild spustit:

Allow codesign to sign your app on your Mac.Allow productbuild to sign your app on your Mac.

Další informace o dotnet publish příkazu naleznete v tématu dotnet publish.

Definování vlastností sestavení v souboru projektu

Alternativou k určení parametrů sestavení na příkazovém řádku je zadat je v souboru projektu v souboru projektu v souboru <PropertyGroup>. V následující tabulce jsou uvedeny některé společné vlastnosti sestavení:

Vlastnost Hodnota
<ApplicationTitle> Jméno viditelné uživatelem aplikace
<ApplicationId> Jedinečný identifikátor aplikace, například com.companyname.mymauiapp.
<ApplicationVersion> Verze sestavení, která identifikuje iteraci aplikace.
<ApplicationDisplayVersion> Číslo verze aplikace
<CodesignKey> Název podpisového klíče kódu. Nastavte na název distribučního certifikátu, jak je zobrazeno v Accessu ke klíčence.
<CodesignEntitlements> Cesta k souboru nároků, který určuje nároky, které aplikace vyžaduje. Nastavte na Platforms\MacCatalyst\Entitlements.plist.
<CodesignProvision> Profil zřizování, který se má použít při podepisování sady aplikací.
<CreatePackage> Nastaví se tak true , aby se pro aplikaci na konci sestavení vytvořil balíček (.pkg).
<EnableCodeSigning> Nastaví se tak true , aby bylo povoleno podepisování kódu.
<EnablePackageSigning> Nastaví se tak true , aby se vytvořený balíček podepsal.
<MtouchLink> Režim propojení projektu, který může být None, SdkOnlynebo Full.
<PackageSigningKey> Podpisový klíč balíčku, který se má použít při podepisování balíčku. Nastavte na název certifikátu instalačního programu, jak je znázorněno v přístupi ke klíčence.
<RuntimeIdentifier> Identifikátor modulu runtime (RID) projektu. Vydané buildy aplikací .NET MAUI Mac Catalyst se standardně používají maccatalyst-x64 a maccatalyst-arm64 jako identifikátory modulu runtime podporují univerzální aplikace. Pokud chcete podporovat pouze jednu architekturu, zadejte maccatalyst-x64 nebo maccatalyst-arm64.
<UseHardenedRuntime> Nastavte na true povolení posíleného modulu runtime, který je nutný pro aplikace Mac Catalyst, které jsou distribuovány mimo Mac App Store.

Úplný seznam vlastností sestavení najdete v tématu Vlastnosti souboru projektu.

Důležité

Hodnoty těchto vlastností sestavení nemusí být v souboru projektu zadané. Dají se také poskytnout na příkazovém řádku při publikování aplikace. To umožňuje vynechat konkrétní hodnoty ze souboru projektu.

Následující příklad ukazuje typickou skupinu vlastností pro sestavení a podepsání aplikace Mac Catalyst pro distribuci mimo Mac App Store:

<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
  <MtouchLink>SdkOnly</MtouchLink>
  <EnableCodeSigning>True</EnableCodeSigning>
  <EnablePackageSigning>true</EnablePackageSigning>
  <CreatePackage>true</CreatePackage>
  <CodesignKey>Developer ID Application: John Smith (AY2GDE9QM7)</CodesignKey>
  <CodesignProvision>MyMauiApp (Non-App Store)</CodesignProvision>
  <CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
  <PackageSigningKey>Developer ID Installer: John Smith (AY2GDE9QM7)</PackageSigningKey>
  <UseHardenedRuntime>true</UseHardenedRuntime>
</PropertyGroup>

Tento příklad <PropertyGroup> přidá kontrolu podmínky, která brání zpracování nastavení, pokud kontrola podmínky neprojde. Kontrola podmínky hledá dvě položky:

  1. Konfigurace sestavení je nastavena na Releasehodnotu .
  2. Cílová architektura je nastavena na něco, co obsahuje text net8.0-maccatalyst.
  3. Platforma je nastavena na AnyCPU.

Pokud některá z těchto podmínek selže, nastavení se nezpracuje. Důležitější je, že nastavení <CodesignKey><CodesignProvision>a <PackageSigningKey> nastavení nejsou nastavené, aby aplikace nebyla podepsána.

Po přidání výše uvedené skupiny vlastností je možné aplikaci publikovat z příkazového řádku na Macu tak, že otevřete terminál a přejdete do složky projektu aplikace .NET MAUI. Potom spusťte následující příkaz:

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

Poznámka:

V .NET 8 se příkaz dotnet publish ve výchozím nastavení nastaví na Release konfiguraci. Proto je možné konfiguraci sestavení z příkazového řádku vynechat.

Publikování sestavení, podpisů a balíčků aplikace a následné zkopírování souboru .pkg do složky bin/Release/net8.0-maccatalyst/publish/ .

Notarizace aplikace

macOS obsahuje technologii nazvanou Gatekeeper, která pomáhá zajistit, aby se na Macu spouštěl jenom důvěryhodný software. Když uživatel stáhne a otevře instalační balíček nebo aplikaci, Gatekeeper ověří, že software pochází od identifikovaného vývojáře. Provede to tak, že zkontroluje certifikát ID vývojáře a zkontroluje, jestli apple nespravuje software bez známého škodlivého obsahu a že ho nezměnil. Proto po zřízení a publikování aplikace byste ji měli odeslat společnosti Apple, aby nebyla notarizována. Notář společnosti Apple automaticky kontroluje vaši aplikaci podepsanou ID vývojáře a provádí kontroly zabezpečení. Pokud notář proběhne úspěšně, přiřadí se vašemu softwaru lístek, který gatekeeperovi dá vědět, že je notarizován.

Aplikace je možné odeslat do notářské služby Apple pomocí nástroje příkazového notarytool řádku:

xcrun notarytool submit {my_package_filename} --wait --apple-id {my_apple_id} --password {my_app_specific_password} --team-id {my_team_id}

Příklad použití notarytool nástroje k podepsání souboru .NET MAUI Mac Catalyst .pkg je znázorněn níže:

xcrun notarytool submit MyMauiApp-1.0.pkg --wait --apple-id johm.smith@provider.com --password fqtk-cprr-gqdt-bvyo --team-id AY2GDE9QM7

Příznak wait oznámí notarytool , že se má ukončit až po dokončení zpracování odeslání notářovou službou, a proto se potřeba dotazovat službu na její stav. passwordArgumenty apple-ida team-id , slouží k zadání přihlašovacích údajů Připojení App Storu. Vzhledem k tomu, že Připojení App Storu vyžaduje dvoufaktorové ověřování, musíte pro aplikaci vytvořit heslo specifické pro notarytoolaplikaci . Informace o vytvoření hesla specifického pro aplikaci najdete v tématu Přihlášení k aplikacím pomocí Apple ID pomocí hesel specifických pro aplikace na developer.apple.com.

Po odeslání aplikace do Společnosti Apple proces notarizace obvykle trvá méně než hodinu.

Poznámka:

Notarizace se dokončí pro většinu aplikací do 5 minut. Informace o tom, jak se vyhnout dlouhé době odezvy z notářské služby, naleznete v tématu Vyhněte se dlouhým notarizaci doby odezvy a omezení velikosti u developer.apple.com.

Za předpokladu, že notářské ověření proběhne úspěšně, vygeneruje notář lístek pro podepsaný instalační balíček a sadu aplikace uvnitř.

Další informace o notarizaci naleznete v tématu Notarizing macOS software before distribution. Další přístupy k odeslání aplikace do notářské služby Společnosti Apple najdete v tématu Nahrání aplikace do notářské služby na developer.apple.com. Informace o řešení běžných problémů s notarizací najdete v tématu Řešení běžných problémů s notářizací.

Připojení lístku k aplikaci

Notarizace vytvoří lístek podepsaného instalačního balíčku a balíčku aplikace uvnitř, který říká Gatekeeperovi, že se vaše aplikace neoznačí. Jakmile se notarizace dokončí, uživatelé se pokusí spustit aplikaci v macOS 10.14 nebo novějším, Gatekeeper vyhledá lístek online.

Po úspěšném notarizaci byste měli pomocí nástroje připojit lístek k aplikaci stapler . To zajistí, že Gatekeeper najde lístek i v případě, že síťové připojení není k dispozici. Spuštěním následujícího příkazu připojte lístek k souboru .pkg:

xcrun stapler staple {filename}.pkg

Nástroj stapler načte lístek a připojí ho k instalačnímu balíčku. Zobrazí se zpráva s oznámením, že sešívání a ověření akce fungovalo za předpokladu, že se sešívání proběhlo úspěšně.

Ověření notářského ověření

Pokud chcete ověřit notarizaci, můžete to udělat pomocí následujícího příkazu:

xcrun stapler validate mypackage.pkg

Distribuce aplikace

Podepsaný a notarizovaný soubor .pkg se dá bezpečně distribuovat mimo Mac App Store v umístění podle vašeho výběru, například webového serveru.

Informace o bezpečném otevírání aplikací na Macu najdete v tématu Bezpečné otevření aplikací na macu na support.apple.com.

Viz také