Sdílet prostřednictvím


Publikování aplikace pro iOS pomocí příkazového řádku

Pokud chcete aplikaci publikovat z příkazového řádku na Macu, otevřete terminál a přejděte do složky pro projekt aplikace .NET Multi-Platform App UI (.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-ios.
-c nebo --configuration Konfigurace sestavení, což je Release.

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. Použijte ios-arm64.
-p:ArchiveOnBuild Logická hodnota, která označuje, jestli se má vytvořit archiv aplikace. Slouží true k vytvoření souboru .ipa.
-p:CodesignKey Název podpisového klíče kódu.
-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.

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

Důležité

Hodnoty těchto parametrů 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 .ipa na Macu použijte například následující příkaz:

dotnet publish -f net8.0-ios -c Release -p:ArchiveOnBuild=true -p:RuntimeIdentifier=ios-arm64 -p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp"

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. Kromě toho příkaz dotnet publish také nastaví výchozí hodnotu ios-arm64 RuntimeIdentifier. Z příkazového řádku je proto možné tuto RuntimeIdentifier možnost vynechat.

Publikování sestavení a podepíše aplikaci a zkopíruje .ipa do složky bin/Release/net8.0-ios/ios-arm64/publish/ . Distribuční kanál aplikace je určen v distribučním certifikátu obsaženém v profilu zřizování. Informace o vytváření zřizovacích profilů pro různé distribuční kanály najdete v tématu Publikování aplikace pro iOS pro distribuci app Storu, publikování aplikace pro iOS pro ad hoc distribuci a publikování aplikace pro iOS pro interní distribuci.

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
<RuntimeIdentifier> Identifikátor modulu runtime (RID) projektu. Použijte ios-arm64.
<ArchiveOnBuild> Logická hodnota, která označuje, jestli se má vytvořit archiv aplikace. Slouží true k vytvoření souboru .ipa.
<CodesignKey> Název podpisového klíče kódu.
<CodesignProvision> Profil zřizování, který se má použít při podepisování sady aplikací.
<CodesignEntitlements> Cesta k souboru nároků, který určuje nároky, které aplikace vyžaduje.

Ú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 pro iOS s jeho zřizovacím profilem:

<PropertyGroup Condition="$(TargetFramework.Contains('-ios')) and '$(Configuration)' == 'Release'">
  <CodesignKey>Apple Distribution: John Smith (AY2GDE9QM7)</CodesignKey>
  <CodesignProvision>MyMauiApp</CodesignProvision>
  <ArchiveOnBuild>true</ArchiveOnBuild>
</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. Cílová architektura je nastavena na něco, co obsahuje text -ios.
  2. Konfigurace sestavení je nastavena na Releasehodnotu .

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

Publikování aplikace pro iOS z Windows

Vytváření nativních aplikací pro iOS pomocí .NET MAUI vyžaduje přístup k nástrojům pro sestavení společnosti Apple, které běží jenom na Macu. Z tohoto důvodu se Visual Studio 2022 musí připojit k počítači Mac přístupnému k síti, aby bylo potřeba vytvářet aplikace pro .NET MAUI iOS. Další informace najdete v tématu Párování s Macem pro vývoj pro iOS.

Poznámka:

Při prvním spárování s Macem se přihlásíte k hostiteli buildu Mac ze sady Visual Studio 2022, nastaví se klíče SSH. S těmito klíči nebudou budoucí přihlášení vyžadovat uživatelské jméno ani heslo.

Pokud chcete aplikaci publikovat z příkazového řádku ve Windows, otevřete terminál a přejděte do složky pro projekt aplikace .NET MAUI. dotnet publish Spusťte příkaz, zadejte stejné parametry příkazového řádku nebo vlastnosti sestavení v souboru projektu, které byste zadali při publikování z Počítače Mac. Kromě toho musíte zadat následující parametry příkazového řádku:

Parametr Hodnota
-p:ServerAddress IP adresa vašeho hostitele buildu Mac.
-p:ServerUser Uživatelské jméno, které se má použít při přihlašování k hostiteli buildu Mac. Místo svého úplného jména použijte systémové uživatelské jméno.
-p:ServerPassword Heslo pro uživatelské jméno použité k přihlášení k hostiteli buildu Mac.
-p:TcpPort Port TCP, který se má použít ke komunikaci s hostitelem buildu Mac, což je 58181.
-p:_DotNetRootRemoteDirectory Složka na hostiteli sestavení Mac, který obsahuje sadu .NET SDK. Použijte /Users/{macOS username}/Library/Caches/Xamarin/XMA/SDKs/dotnet/.

Důležité

Hodnoty pro tyto parametry lze také zadat v souboru projektu jako vlastnosti sestavení. Hodnoty pro <ServerAddress>, <ServerUser>, <ServerPassword>a <_DotNetRootRemoteDirectory> obvykle budou k dispozici na příkazovém řádku z bezpečnostních důvodů.

Například pomocí následujícího příkazu sestavte a podepište .ipa z Windows:

dotnet publish -f net8.0-ios -c Release -p:ArchiveOnBuild=true -p:RuntimeIdentifier=ios-arm64 -p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp" -p:ServerAddress={macOS build host IP address} -p:ServerUser={macOS username} -p:ServerPassword={macOS password} -p:TcpPort=58181 -p:_DotNetRootRemoteDirectory=/Users/{macOS username}/Library/Caches/Xamarin/XMA/SDKs/dotnet/

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. Kromě toho příkaz dotnet publish také nastaví výchozí hodnotu ios-arm64 RuntimeIdentifier. Z příkazového řádku je proto možné tuto RuntimeIdentifier možnost vynechat.

Poznámka:

ServerPassword Pokud se parametr vynechá z vyvolání sestavení příkazového řádku, pokusí se spárovat s Macem přihlášení k hostiteli sestavení Mac pomocí uložených klíčů SSH.

Publikování sestavení a podepíše aplikaci a zkopíruje .ipa do složky bin\Release\net8.0-ios\ios-arm64\publish na počítači s Windows. Distribuční kanál aplikace je určen v distribučním certifikátu obsaženém v profilu zřizování. Informace o vytváření zřizovacích profilů distribuce pro různé distribuční kanály najdete v tématu Publikování aplikace pro iOS pro distribuci app Storu, publikování aplikace pro iOS pro ad hoc distribuci a publikování aplikace pro iOS pro interní distribuci.

Během procesu publikování je možná nutné povolit codesign spuštění na spárovaný počítač Mac:

Umožňuje codesign podepsat aplikaci na spárovaném Macu.

Řešení potíží se vzdáleným sestavením

RuntimeIdentifier Pokud při vzdáleném sestavování z příkazového řádku ve Windows není zadána, použije se architektura počítače s Windows. K tomu dochází, protože RuntimeIdentifier je nutné ho nastavit v rané fázi procesu sestavení, aby se sestavení mohl připojit k Macu, aby odvozoval jeho architekturu.

RuntimeIdentifier Pokud se při vzdáleném sestavování pomocí sady Visual Studio ve Windows nezadá, integrované vývojové prostředí (IDE) zjistí architekturu vzdáleného počítače Mac a odpovídajícím způsobem ji nastaví. Přepsání výchozího nastavení lze dosáhnout nastavením $(ForceSimulatorX64ArchitectureInIDE) vlastnosti sestavení:

<PropertyGroup Condition="'$(Configuration)' == 'Release' And '$(TargetFramework)' == 'net8.0-ios'">
    <ForceSimulatorX64ArchitectureInIDE>true</ForceSimulatorX64ArchitectureInIDE>
</PropertyGroup>

Distribuce aplikace

Soubor .ipa lze distribuovat jedním z následujících přístupů: