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:
- Cílová architektura je nastavena na něco, co obsahuje text
-ios
. - Konfigurace sestavení je nastavena na
Release
hodnotu .
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:
Ř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ů:
- Ad hoc aplikace je možné distribuovat pomocí Apple Configuratoru. Další informace najdete v uživatelské příručce pro Apple Configurator na support.apple.com. |
- Aplikace z App Storu se dají nahrát do App Storu prostřednictvím aplikace, jako je Transporter. To bude vyžadovat, abyste vytvořili záznam aplikace v App Storu Connect a vytvořili heslo specifické pro aplikaci. Další informace najdete v tématu Vytvoření záznamu aplikace na developer.apple.com a přihlášení k aplikacím pomocí Apple ID pomocí hesel specifických pro aplikace na support.apple.com.
- Interní aplikace je možné distribuovat prostřednictvím zabezpečeného webu nebo přes mobilní Správa zařízení (MDM). Oba tyto přístupy vyžadují, aby aplikace byla připravená na distribuci, která zahrnuje přípravu manifestu. Další informace najdete v tématu Distribuce vlastnických interních aplikací do zařízení Apple na support.apple.com.