Usar o SDK do MSIX para distribuir um pacote MSIX em plataformas não Windows 10
O SDK do MIX oferece aos desenvolvedores uma maneira universal de distribuir conteúdos do pacote para dispositivos do cliente, independentemente da plataforma do sistema operacional nesses dispositivos. Isso permite que eles empacotem o conteúdo do aplicativo uma vez, ao invés de terem que empacotar para cada plataforma separadamente.
Para usufruir do SDK do MSIX e da capacidade de distribuir o conteúdo do pacote para várias plataformas, fornecemos uma maneira de especificar as plataformas de destino onde você deseja que seus pacotes sejam extraídos. Isso significa é possível garantir que o conteúdo do pacote seja extraído do pacote apenas da forma que você quiser.
A tabela a seguir mostra as famílias de dispositivos de destino a serem declaradas no manifesto.
Plataforma | Família | Família de dispositivos de destino | Observações | ||
---|---|---|---|---|---|
Windows 10 | o Telefone | Plataform.All |
Windows.Universal | Windows.Mobile | Dispositivos móveis |
Área de Trabalho | Windows.Desktop | Computador | |||
Xbox | Windows.Xbox | Console do Xbox | |||
Hub de Superfície | Windows.Team | Dispositivos Win 10 de tela grande | |||
HoloLens | Windows.Holografic | Headset VR/RA | |||
IoT | Windows.IoT | Dispositivos IoT | |||
iOS | o Telefone | Apple.Ios.All | Apple.Ios.Phone | iPhone, Touch | |
Tablet | Apple.Ios.Tablet | iPad mini, iPad, iPad Pro | |||
TV | Apple.Ios.TV | Apple TV | |||
Assistir | Apple.Ios.Watch | iWatch | |||
MacOS | Área de Trabalho | Apple.MacOS.All | MacBook Pro, MacBook Air, Mac Mini, iMac | ||
Android | o Telefone | Google.Android.All | Google.Android.Phone | Dispositivos móveis que utilizam qualquer versão do Android | |
Tablet | Google.Android.Tablet | Tablets Android | |||
Área de Trabalho | Google.Android.Desktop | Chromebook | |||
TV | Google.Android.TV | Dispositivos Android de tela grande | |||
Assistir | Google.Android.Watch | Dispositivos Google Gears | |||
Windows | 7 | Windows7.Desktop | Dispositivos Windows 7 | ||
8 | Windows8.Desktop | Dispositivos Windows 8 e 8.1 | |||
Web | Microsoft | Web.All | Web.Edge.Todos | Aplicativos do mecanismo da web Edge | |
Android | Web.Blink.All | Aplicativos do mecanismo da web Blink | |||
Chrome | Web.Chromium.All | Aplicativos do mecanismo da web Chrome | |||
iOS | Web.Webkit.Todos | Aplicativos do mecanismo da web Webkit | |||
MacOS | Web.Safari.All | Aplicativos do mecanismo de web Safari | |||
Linux | Qualquer/Todos | Linux.All | Todas as distribuições Linux |
No arquivo de manifesto do pacote do aplicativo, será necessário incluir a família de dispositivos de destino apropriada caso você deseje que o conteúdo do pacote seja extraído apenas em plataformas e dispositivos específicos. Se desejar construir o pacote de forma que seja suportado em todas as plataformas e tipos de dispositivos, escolha Platform.All como a família de dispositivos de destino. Da mesma forma, se desejar que o pacote tenha suporte somente em aplicativos Web, escolha Web.All.
Arquivo de manifesto de exemplo (AppxManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
IgnorableNamespaces="mp uap uap3">
<Identity Name="BestAppExtension"
Publisher="CN=awesomepublisher"
Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="56a6ecda-c215-4864-b097-447edd1f49fe" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
<Properties>
<DisplayName>Best App Extension</DisplayName>
<PublisherDisplayName>Awesome Publisher</PublisherDisplayName>
<Description>This is an extension package to my app</Description>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Resources>
<Resource Language="x-generate"/>
</Resources>
<Dependencies>
<TargetDeviceFamily Name="Platform.All" MinVersion="0.0.0.0" MaxVersionTested="0.0.0.0"/>
</Dependencies>
<Applications>
<Application Id="App">
<uap:VisualElements
DisplayName="Best App Extension"
Description="This is the best app extension"
BackgroundColor="white"
Square150x150Logo="images\squareTile-sdk.png"
Square44x44Logo="images\smallTile-sdk.png"
AppListEntry="none">
</uap:VisualElements>
<Extensions>
<uap3:Extension Category="Windows.appExtension">
<uap3:AppExtension Name="add-in-contract" Id="add-in" PublicFolder="Public" DisplayName="Sample Add-in" Description="This is a sample add-in">
<uap3:Properties>
<!--Free form space-->
</uap3:Properties>
</uap3:AppExtension>
</uap3:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Versão da plataforma
No arquivo de manifesto de exemplo acima, juntamente com o nome da plataforma, também há parâmetros para especificar MinVersion e MaxVersionTested Esses parâmetros são usados em plataformas Windows 10. No Windows 10, o pacote só será implantado em versões do sistema operacional Windows 10 que sejam superiores ao MinVersion. Em outras plataformas que não sejam o Windows 10, os parâmetros MinVersion e MaxVersionTested não são usados para fazer a declaração que determina se os conteúdos do pacote devem ser extraídos.
Se deseja usar o pacote para todas as plataformas (Windows 10 e não Windows 10), recomendamos que use os parâmetros MinVersion e MaxVersionTested para especificar as versões do sistema operacional Windows 10 onde gostaria que seu aplicativo funcionasse. Portanto, a seção Dependências do seu manifesto ficaria assim:
<Dependencies>
<TargetDeviceFamily Name="Platform.All" MinVersion="0.0.0.0" MaxVersionTested="0.0.0.0"/>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.14393.0" MaxVersionTested="10.0.16294.0"/>
</Dependencies>
MinVersion e MaxVersionTested são campos obrigatórios no manifesto e precisam estar em conformidade com a notação quádrupla(#.#.#.#). Se estiver usando apenas o SDK de empacotamento do MSIX apenas para plataformas que não sejam Windows 10, pode simplesmente usar '0.0.0.0' como as versões MinVersion e MaxVersionTested.
Como usar o mesmo pacote em todas as plataformas (Windows 10 e não Windows 10) efetivamente
Para aproveitar ao máximo o SDK de Empacotamento MSIX, você precisará criar o pacote de forma que seja implantado como um pacote do aplicativo no Windows 10 e, ao mesmo tempo, seja suportado em outras plataformas. No Windows 10, é possível compilar o pacote como uma Extensão de aplicativo. Para obter mais informações sobre Extensões de Aplicativos e como elas podem ajudar a tornar o seu aplicativo extensível, consulte a postagem no blog Introdução às Extensões de Aplicativos.
No exemplo de arquivo de manifesto mostrado anteriormente neste artigo, você pode ver um elementoProperties dentro do elemento AppExtension . Nenhuma validação é executada nesta seção do arquivo de manifesto. Isso permite que os desenvolvedores especifiquem os metadados necessários entre a extensão e o aplicativo host/cliente.