MSIX SDK를 사용하여 비 Windows 10 플랫폼에 MSIX 패키지 배포
MSIX SDK는 클라이언트 디바이스의 OS 플랫폼에 관계없이 패키지 콘텐츠를 클라이언트 디바이스에 배포하는 범용 방법을 개발자에게 제공합니다. 이를 통해 개발자는 각 플랫폼에 대해 패키지하지 않고 앱 콘텐츠를 한 번 패키지할 수 있습니다.
MSIX SDK와 패키지 콘텐츠를 여러 플랫폼에 배포하는 기능을 활용하기 위해 패키지를 추출할 대상 플랫폼을 지정하는 방법을 제공합니다. 즉, 원하는 대로 패키지 콘텐츠가 패키지에서 추출되도록 할 수 있습니다.
다음 표에서는 매니페스트에서 선언할 대상 디바이스 패밀리를 보여 줍니다.
플랫폼 | 가족 | 대상 디바이스 패밀리 | 주의 | ||
---|---|---|---|---|---|
Windows 10 | 전화 | Platform.All |
Windows.Universal | Windows.Mobile | 모바일 장치 |
바탕 화면 | Windows.Desktop | PC | |||
Xbox | Windows.Xbox | Xbox 콘솔 | |||
Surface Hub | Windows.Team | 큰 화면 Win 10 디바이스 | |||
HoloLens | Windows.Holographic | VR/AR 헤드셋 | |||
IoT | Windows.IoT | IoT 디바이스 | |||
iOS | 전화 | Apple.Ios.All | Apple.Ios. 전화 | i전화, Touch | |
태블릿 | Apple.Ios.Tablet | iPad mini, iPad, iPad Pro | |||
TV | Apple.Ios.TV | Apple TV | |||
시청 | Apple.Ios.Watch | iWatch | |||
MacOS | 바탕 화면 | Apple.MacOS.All | MacBook Pro, MacBook Air, Mac Mini, iMac | ||
Android | 전화 | Google.Android.All | Google.Android. 전화 | Android의 모든 버전을 대상으로 하는 모바일 디바이스 | |
태블릿 | Google.Android.Tablet | Android 태블릿 | |||
바탕 화면 | Google.Android.Desktop | Chromebooks | |||
TV | Google.Android.TV | Android 대형 화면 디바이스 | |||
시청 | Google.Android.Watch | Google 기어 장치 | |||
Windows | 7 | Windows7.Desktop | Windows 7 디바이스 | ||
8 | Windows8.Desktop | Windows 8/8.1 디바이스 | |||
웹 | Microsoft | Web.All | Web.Edge.All | Edge 웹 엔진 앱 | |
Android | Web.Blink.All | 웹 엔진 앱 깜박임 | |||
Chrome | Web.Chromium.All | Chrome 웹 엔진 앱 | |||
iOS | Web.Webkit.All | Webkit 웹 엔진 앱 | |||
MacOS | Web.Safari.All | Safari 웹 엔진 앱 | |||
Linux | 모두/모두 | Linux.All | 모든 Linux 배포 |
특정 플랫폼 및 디바이스에서만 패키지 콘텐츠를 추출하려면 앱 패키지 매니페스트 파일에서 적절한 대상 디바이스 패밀리를 포함해야 합니다. 패키지가 모든 플랫폼 및 디바이스 유형에서 지원되는 방식으로 bulid를 원하는 경우 Platform.All을 대상 디바이스 패밀리로 선택합니다. 마찬가지로 웹앱에서만 지원되는 패키지를 원하는 경우 Web.All을 선택합니다.
샘플 매니페스트 파일(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>
플랫폼 버전
위의 샘플 매니페스트 파일에는 플랫폼 이름과 함께 MinVersion 및 MaxVersionTested를 지정하는 매개 변수도 있습니다. 이러한 매개 변수는 Windows 10 플랫폼에서 사용됩니다. Windows 10에서는 패키지가 MinVersion보다 큰 Windows 10 OS 버전에만 배포됩니다. 다른 비 Windows 10 플랫폼에서는 MinVersion 및 MaxVersionTested 매개 변수를 사용하여 패키지 콘텐츠를 추출할지 여부를 선언하지 않습니다.
모든 플랫폼(Windows 10 및 비 Windows 10)에 패키지를 사용하려는 경우 MinVersion 및 MaxVersionTested 매개 변수를 사용하여 앱이 작동할 Windows 10 OS 버전을 지정하는 것이 좋습니다. 따라서 매니페스트의 종속성 섹션은 다음과 같습니다.
<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 및 MaxVersionTested 는 매니페스트의 필수 필드이며 쿼드 표기법(#.#.#.#)을 준수해야 합니다. 비 Windows 10 플랫폼에 대해서만 MSIX 패키징 SDK를 사용하는 경우 MinVersion 및 MaxVersionTested 버전으로 '0.0.0.0'을 사용할 수 있습니다.
모든 플랫폼에서 동일한 패키지를 효과적으로 사용하는 방법(Windows 10 및 비 Windows 10)
MSIX 패키징 SDK를 최대한 활용하려면 Windows 10에서 앱 패키지처럼 배포되고 동시에 다른 플랫폼에서 지원되는 방식으로 패키지를 빌드해야 합니다. Windows 10에서는 패키지를 앱 확장으로 빌드할 수 있습니다. 앱 확장 및 앱 확장에 대한 자세한 내용은 앱 확장 소개 블로그 게시물을 참조하세요.
이 문서의 앞부분에 표시된 매니페스트 파일 예제에서는 AppExtension 요소 내의 Properties 요소를 확인할 수 있습니다. 매니페스트 파일의 이 섹션에서는 유효성 검사가 수행되지 않습니다. 이를 통해 개발자는 확장 및 호스트/클라이언트 앱 간에 필요한 메타데이터를 지정할 수 있습니다.