MSIX SDK를 사용하여 비 Windows 10 플랫폼에 MSIX 패키지 배포

MSIX SDK는 클라이언트 디바이스의 OS 플랫폼에 관계없이 패키지 콘텐츠를 클라이언트 디바이스에 배포하는 범용 방법을 개발자에게 제공합니다. 이를 통해 개발자는 각 플랫폼에 대해 패키지하지 않고 앱 콘텐츠를 한 번 패키지할 수 있습니다.

MSIX SDK와 패키지 콘텐츠를 여러 플랫폼에 배포하는 기능을 활용하기 위해 패키지를 추출할 대상 플랫폼을 지정하는 방법을 제공합니다. 즉, 패키지 콘텐츠가 원하는 대로 패키지에서 추출되도록 할 수 있습니다.

다음 표에서는 매니페스트에서 선언할 대상 디바이스 패밀리를 보여 줍니다.

플랫폼 패밀리 대상 디바이스 패밀리 참고
윈도우 10 Phone





















Platform.All























Windows. 보편적인 Windows. 모바일 모바일 디바이스
데스크톱 Windows. 데스크톱 PC
Xbox Windows. Xbox Xbox 본체
Surface Hub Windows. 팀 큰 화면 Win 10 디바이스
HoloLens Windows. 홀로그램 VR/AR 헤드셋
IoT Windows. Iot IoT 디바이스
iOS Phone Apple.Ios.All Apple.Ios. 전화 iPhone, 터치
태블릿 Apple.Ios.Tablet iPad 미니, 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 Phone 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 웹. Chromium. 모든 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>

플랫폼 버전

위의 샘플 매니페스트 파일에서 플랫폼 이름과 함께 MinVersionMaxVersionTested를 지정하는 매개 변수도 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>

MinVersionMaxVersionTested 는 매니페스트에 필수 필드이며 쿼드 표기법(#.#.#.#)을 준수해야 합니다. 비 Windows 10 플랫폼에 대해서만 MSIX 패키징 SDK를 사용하는 경우 MinVersion 및 MaxVersionTested 버전으로 '0.0.0.0'을 사용할 수 있습니다.

모든 플랫폼에서 동일한 패키지를 효과적으로 사용하는 방법(Windows 10 및 비 Windows 10)

MSIX 패키징 SDK를 최대한 활용하려면 Windows 10 앱 패키지처럼 배포되는 동시에 다른 플랫폼에서 지원되는 방식으로 패키지를 빌드해야 합니다. Windows 10 패키지를 앱 확장으로 빌드할 수 있습니다. 앱 확장 및 앱 확장에 대한 자세한 내용은 앱 확장 소개 블로그 게시물을 참조하세요.

이 문서의 앞부분에 표시된 매니페스트 파일 예제에서 AppExtension 요소 내의 Properties 요소를 확인할 수 있습니다. 매니페스트 파일의 이 섹션에서는 유효성 검사가 수행되지 않습니다. 이를 통해 개발자는 확장 및 호스트/클라이언트 앱 간에 필요한 메타데이터를 지정할 수 있습니다.