플랫 번들 앱 패키지

Important

스토어에 앱을 제출하려는 경우 플랫 번들을 사용하려면 승인을 위해 Windows 개발자 지원에 문의해야 합니다.

플랫 번들은 앱의 패키지 파일을 번들로 묶는 향상된 방법입니다. 일반적인 Windows 앱 번들 파일은 앱 패키지 파일을 번들 내에 포함해야 하는 다단계 패키징 구조를 사용하며, 플랫 번들은 앱 패키지 파일만 참조하여 앱 번들 외부에 있을 수 있도록 하여 이러한 필요성을 제거합니다. 앱 패키지 파일은 더 이상 번들에 포함되지 않으므로 병렬 처리될 수 있으므로 업로드 시간이 단축되고 게시 속도가 빨라지며(각 앱 패키지 파일을 동시에 처리할 수 있으므로) 궁극적으로 개발 반복 속도가 빨라집니다.

Flat Bundle Diagram

플랫 번들의 또 다른 이점은 더 적은 패키지를 만들어야 한다는 것입니다. 앱 패키지 파일만 참조되므로 패키지가 두 버전에서 변경되지 않은 경우 두 버전의 앱에서 동일한 패키지 파일을 참조할 수 있습니다. 이렇게 하면 다음 버전의 앱에 대한 패키지를 빌드할 때 변경된 앱 패키지만 만들어야 합니다. 기본적으로 플랫 번들은 자체와 동일한 폴더 내의 앱 패키지 파일을 참조합니다. 그러나 이 참조는 다른 경로(상대 경로, 네트워크 공유 및 http 위치)로 변경할 수 있습니다. 이렇게 하려면 플랫 번들을 만드는 동안 BundleManifest를 직접 제공해야 합니다.

플랫 번들을 만드는 방법

MakeAppx.exe 도구를 사용하거나 패키징 레이아웃을 사용하여 번들의 구조를 정의하여 플랫 번들을 만들 수 있습니다.

MakeAppx.exe 사용

MakeAppx.exe를 사용하여 플랫 번들을 만들려면 평소와 같이 "MakeAppx.exe 번들" 명령을 사용하지만 /fb 스위치와 함께 플랫 앱 번들 파일을 생성합니다(앱 패키지 파일만 참조하고 실제 페이로드를 포함하지 않으므로 매우 작음).

다음은 명령 구문의 예입니다.

MakeAppx bundle [options] /d <content directory> /fb /p <output flat bundle name>

MakeAppx.exe 사용에 대한 자세한 내용은 MakeAppx.exe 도구를 사용하여 앱 패키지 만들기를 참조하세요.

패키징 레이아웃 사용

또는 패킹 레이아웃을 사용하여 플랫 번들을 만들 수 있습니다. 이렇게 하려면 앱 번들 매니페스트의 PackageFamily 요소에서 FlatBundle 특성을 true로 설정합니다. 패키징 레이아웃에 대한 자세한 내용은 패키징 레이아웃을 사용하여 패키지 만들기를 참조하세요.

플랫 번들을 배포하는 방법

플랫 번들을 배포하려면 먼저 앱 번들 외에도 각 앱 패키지에 동일한 인증서로 서명해야 합니다. 이는 모든 앱 패키지 파일(.appx/.msix)이 이제 독립적인 파일이며 앱 번들(.appxbundle/.msixbundle) 파일 내에 더 이상 포함되지 않으므로

패키지에 서명된 후 다음 옵션 중 하나를 통해 앱을 설치할 수 있습니다.

  • 앱 번들 파일을 두 번 클릭하여 앱 설치 관리자와 함께 설치합니다.
  • PowerShell에서 Add-AppxPackage cmdlet 을 사용하고 앱 번들 파일을 가리킵니다(앱 패키지가 앱 번들에 필요한 위치라고 가정).

플랫 번들의 개별 .appx/.msix 패키지는 직접 배포할 수 없습니다. .appxbundle/.msixbundle을 통해 배포해야 합니다. 그러나 초기 설치 후에 플랫 번들의 개별 .appx/.msix 패키지를 업데이트할 수 있습니다. 개별 .appx/.msix 패키지를 업데이트하는 경우 플랫 번들 매니페스트도 업데이트해야 합니다.

예를 들어 v1 플랫 번들이 .msixbundle, x86 .msix, x64 .msix 및 자산 .msix로 구성되고 v2 번들에 자산 패키지 변경 내용만 있는 경우 업데이트를 설치하려면 .msixbundle 및 asset .msix만 빌드하면 됩니다. 번들이 모든 버전의 .msix 패키지를 추적하므로 v2용 .msixbundle을 빌드해야 합니다. 자산 .msix의 버전을 v2에 충돌하면 이 새 참조가 있는 새 .msixbundle이 필요합니다. v2 .msixbundle은 v1 x86 .msix 및 x64 .msix에 대한 참조를 포함할 수 있습니다. 플랫 번들의 .msix 패키지에는 동일한 버전 번호가 필요하지 않습니다.