내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

앱 패키징

Windows 8.1에서는 새로운 앱 번들을 사용하여 이전보다 훨씬 간단하게 앱을 제출할 수 있습니다. 또한 리소스 팩을 통해 원하지 않는 고객의 디스크 공간, 대역폭 또는 앱 구매 환경에는 영향을 주지 않고 고해상도 디스플레이를 위한 자산, 지역화 등의 추가 기능을 원하는 고객에게 제공할 수 있습니다.

스마트 앱 배포에 앱 번들을 사용하는 방법에 대한 예제를 보려면 Windows 스토어 DirectX 게임 패키지 항목과 리소스 패키지를 사용하는 게임 샘플을 참조하세요.

Windows 8.1의 새로운 기능 및 업데이트된 기능

앱 리소스

Windows 8.1에서는 새로운 패키지 형식을 앱 모델에 도입했습니다. 리소스 패키지를 사용하여 추가 리소스에서 핵심 앱 패키지(예제: 문자열 또는 이미지 같은 프랑스어 관련 자산)를 분리하고 이러한 리소스를 고유한 패키지에 포함할 수 있습니다. 따라서 리소스 패키지를 사용하면 모든 리소스 패키지를 PC에 다운로드하여 설치할 필요 없이 앱의 전체 환경을 필요에 맞게 구성할 수 있습니다.

리소스 패키지는 선택 사항이며 앱 패키지가 리소스 패키지에 의존하지 않아야 합니다. 즉, 앱 패키지에는 리소스 패키지가 PC에 설치되지 않은 경우에도 항상 사용할 수 있는 기본 리소스 집합이 하나 이상 포함되어야 합니다. 이를 통해 다음과 같은 몇 가지 주요 기능을 유지할 수 있습니다.

  • 리소스 패키지가 없어도 항상 앱 패키지를 PC에서 적절하게 설치 및 시작할 수 있습니다.

  • 설치된 리소스 패키지가 완전하지 않을 경우에도 앱 패키지에 대체할 리소스가 있습니다.

리소스 패키지는 앱 모델에서 두 가지 목적에 사용됩니다.

  • 리소스 관리 시스템에서 앱이 실행될 때 앱 환경을 개인 설정하는 데 사용할 수 있는 리소스 후보를 제공합니다.

  • 리소스 패키지가 특정 리소스 한정자(예제: 사용자 배율, 시스템 배율 및 Microsoft DirectX 기능)을 대상으로 지정하는 데 사용되는 메타데이터를 제공합니다.

리소스 패키지는 패키지당 하나의 리소스 한정자만 대상으로 지정할 수 있습니다. 그러나 앱에는 많은 리소스 패키지를 포함할 수 있습니다.

앱 번들

리소스 패키지 외에 Windows 8.1에서는 Windows 스토어 앱 및 리소스 패키지의 패키징 및 전 세계 사용자에 대한 배포를 최적화하는 데 도움이 되는 앱 번들(또는 .appxbundle)을 제공합니다.

앱에 대한 앱 번들 페이로드를 만듭니다. Visual Studio는 번들 매니페스트를 만들고 추가합니다. Microsoft Visual Studio Express 2013 for Windows에서는 앱을 번들로 만들 때 자동으로 리소스를 개별 패키지로 분할하고 앱 블록 맵 및 서명 파일을 번들에 추가합니다. Windows 8.1부터 시스템에 배포할 수 있는 완전히 자체 포함된 Windows 스토어 앱을 구성하는 항목은 다음과 같습니다.

앱 패키지(.appx)

앱 번들에는 각각 다른 특정 아키텍처를 대상으로 하는 경우에만 앱 패키지를 두 개 이상 포함할 수 있습니다. 예를 들어 X86.appx 및 amd64.appx 패키지를 둘 다 포함할 수 있지만 amd64.appx 패키지를 두 개 포함할 수는 없습니다.

리소스 패키지(.appx)

앱 번들에는 언어, 배율 및 DirectX 기능 수준에 대한 리소스 패키지(.appx 파일)가 포함됩니다. 다양한 장치 구성을 지원하기 위해 각 앱 번들에는 여러 가지 리소스 패키지가 포함될 수 있습니다. Windows 스토어 앱에서 리소스 패키지를 직접 참조하려면 리소스 관리 시스템을 충분히 활용해야 합니다.

참고  리소스 패키지에는 코드를 포함해서는 안 됩니다.

앱 번들 매니페스트(AppxBundleManifest.xml)

앱 번들 매니페스트(.appxbundlemanifest 파일)에는 포함된 패키지에 대한 모든 적용 가능성 정보가 포함됩니다. 모든 특정 패키지에 대해 매니페스트는 패키지 형식("응용 프로그램" 또는 "리소스")과 버전 및 리소스 대상 정보를 지정합니다. 특히 앱 패키지의 경우, 앱 번들 매니페스트에는 아키텍처에 대한 정보가 포함됩니다.

일반적으로 앱 번들 매니페스트를 사용하면 Windows 8.1 앱 모델에서 앱 번들의 콘텐츠를 인식하고 설치 시 사용자 장치에 설치해야 하는 앱 패키지와 리소스 패키지를 결정합니다.

다음은 앱 번들 매니페스트 파일의 예제입니다.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Bundle xmlns="http://schemas.microsoft.com/appx/2013/bundle" SchemaVersion="1.0">
  <Identity Name="Example" Publisher="CN=ExamplePublisher" Version="2013.101.312.1053"/>
  <Packages>
    <Package Type="application" Version="1.0.0.5" Architecture="x86" FileName="AppPackage_X86.appx" Offset="49" Size="3207">
      <Resources>
        <Resource Language="en-us"/>
        <Resource Scale="100" />
      </Resources>
    </Package>
    <Package Type="application" Version="1.0.0.4" Architecture="x64" FileName="AppPackage_X64.appx" Offset="3329" Size="3204">
      <Resources>
        <Resource Language="en-us"/>
        <Resource Scale="100" />
      </Resources>
    </Package>
    <Package Type="resource" Version="1.0.0.0" ResourceId="French" FileName="ResourcePackage_French.appx" Offset="6606" Size="1423">
      <Resources>
        <Resource Language="fr"/>
        <Resource Language="fr-fr"/>
        <Resource Language="fr-ca"/>
      </Resources>
    </Package>
    <Package Type="resource" Version="1.0.0.3" ResourceId="HiRes" FileName="ResourcePackage_HiRes.appx" Offset="8111" Size="1584">
      <Resources>
        <Resource Scale="140"/>
      </Resources>
    </Package>
  </Packages>
</Bundle>

앱 블록 맵(AppxBlockMap.xml)

블록 맵 파일에는 앱 및 리소스 패키지를 제외한 번들에 포함된 모든 파일과 함께 운영 체제가 파일 무결성을 확인하고 앱에 대한 업데이트를 최적화하는 데 사용하는 관련 암호화 해시 값이 나열되어 있습니다. 블록 맵 파일에 대한 자세한 내용은 앱 패키지 블록 맵을 참조하세요.

앱 서명(AppxSignature.p7x)

앱 번들 서명은 패키지와 콘텐츠가 서명된 후에 수정되지 않았음을 확인해 줍니다. 서명 인증서가 신뢰할 수 있는 루트 인증 기관 인증서를 유효화하는 경우 서명은 또한 패키지에 서명한 사람을 식별합니다. 패키지의 서명자는 일반적으로 앱 게시자 또는 작성자입니다.

참고  수동으로 앱을 번들로 만들려면 독립 실행형 MakeAppxSignTool 유틸리티를 사용할 수 있습니다. Windows 스토어 앱을 번들로 만들고 배포하는 방법에 대한 자세한 내용은 Windows 스토어 앱 패키징, 배포 및 쿼리를 참조하세요.

패키지 ID

Windows 8 앱 패키지의 경우와 마찬가지로 앱 번들의 가장 기초적인 요소 중 하나는 번들을 식별하는 5개 부분으로 구성된 튜플입니다. 이 튜플을 패키지 ID라고 하며, 다음 데이터로 구성됩니다.

속성설명
이름

앱 패키지에 사용되는 일반적인 이름입니다. 예제: "myCompany.mySuite.myApp".

참고  이 이름은 반드시 앱 타일에 표시되는 이름이라고 할 수는 없습니다.

게시자

Windows 스토어 앱의 게시자입니다. 대부분의 경우 게시자는 Windows 8 개발자 계정을 등록하는 데 사용된 계정과 동일합니다.

버전

앱의 이후 릴리스를 제공하는 데 사용되는 네 부분으로 구성된 버전 설명자(주 버전.부 버전.빌드 번호.수정 번호)입니다(예제: "1.0.0.0").

ProcessorArchitecture

기본적으로 중간으로 설정합니다.

ResourceID

기본적으로 "~"로 설정합니다.

 

앱 번들 배포

Windows 스토어를 통해 앱 번들을 배포하는 작업은 이 워크플로를 따릅니다.

앱 패키징 흐름

Windows 스토어 앱 배포 프로세스는 여러 단계로 발생합니다. 먼저 Windows 8.1은 앱 번들 매니페스트, 번들 블록 맵 및 번들 서명을 가져와 확인합니다. 그런 다음 Windows 8.1은 번들 매니페스트를 확인하여 현재 아키텍처에 배포할 수 있는 앱이 있는지 확인합니다. 올바른 앱 패키지가 발견되면 Windows 8.1에서는 앱이 성공적으로 배포되도록 하기 위해 앱 패키지의 배포 조건을 검사합니다.

Windows 8.1에서는 배포에 적용할 수 있는 리소스 패키지의 하위 집합을 확인하고 이러한 패키지 이진을 \WindowsApps\ 디렉터리에 대해 준비합니다. 마지막으로 Windows 8.1은 앱 패키지 및 리소스 패키지를 사용자 계정에 등록합니다.

유효성 검사

사용자가 Windows 스토어 앱 설치를 시작한 후에 Windows 8.1에서 다음 검사를 완료해야만 배포를 시작할 수 있습니다.

테스트조건

아키텍처 지원

번들에는 최대 세 개의 아키텍처별 앱 패키지를 포함할 수 있으며 이 앱 패키지는 모두 앱 번들 매니페스트에서 지정됩니다.

최소 운영 체제 버전

앱 패키지 매니페스트 내에서 필수 조건을 지정합니다. 이러한 필수 조건은 특정 최소 운영 체제 버전에 대한 요구 사항을 나타냅니다. 예를 들어 Windows 8.1의 경우 해당 버전 번호는 6.3입니다. 앱 필수 조건에 대한 자세한 내용은 앱 패키징 필수 조건을 참조하세요.

앱 종속성

Windows 스토어 앱은 앱이 필요로 하는 추가된 기능에 대한 다른 구성 요소 패키지에서 종속성을 나타낼 수 있습니다. 앱 종속성에 대한 자세한 내용은 앱 패키징 종속성을 참조하세요.

디스크 공간

각 Windows 스토어 앱에는 배포를 위해 일정 크기의 디스크 공간이 필요합니다. 패키지를 배포할 디스크 공간이 충분하지 않으면 배포가 실패합니다.

서명 확인

앱 패키지의 각 파일은 이미 유효성 검사가 이루어진 BlockMap에 대해 무결성이 확인되어야 합니다.

 

패키지 적용 가능성

Windows 8.1이 앱 번들을 시스템에 배포할 수 있는지 확인한 후 사용자 환경을 향상하기 위해 앱 패키지와 함께 배포해야 하는 리소스 패키지를 결정합니다. 다음과 같은 세 가지 특정 리소스 한정자에 따라 적용 가능성을 확인합니다.

한정자설명

사용자 언어

사용자가 기본 언어 목록에 추가한 모든 언어가 배포할 최종 적용 가능한 언어 리소스 패키지 집합으로 고려됩니다. Windows 8.1은 리소스 패키지에 대한 많은 로캘 및 언어를 지원합니다.

시스템 배율

모든 모니터에 대한 배율 값은 배포할 최종 적용 가능한 배율 리소스 패키지 집합을 결정하는 데 사용됩니다. Windows 8.1은 리소스 패키지에 대한 세 가지 배율 인수인 scale-100, scale-140scale-180을 지원합니다.

DirectX 기능 수준

시스템에서 사용할 수 있는 모든 DirectX 기능 수준은 배포할 적용 가능한 DirectX 리소스 패키지의 최종 집합을 결정하는 데 사용됩니다. Windows 8.1은 리소스 패키지에 대한 세 가지 DirectX 기능 수준인 DXFL-DX9, DXFL-DX10DXFL-DX11을 지원합니다.

 

패키지 준비

Windows 8.1이 앱 번들을 시스템에 배포할 수 있는지와 어떤 패키지를 배포할지를 확인한 후에 패키지 콘텐츠가 \WindowsApps\ 디렉터리로 다운로드됩니다. 다운로드된 각 패키지에 대한 새 디렉터리가 생성되고 다음과 같은 패키지 ID 이름 값을 사용하여 디렉터리의 이름이 지정됩니다.

<Package Name>_<Version>_<Architecture>_<ResourceID>_<Publisher Hash>

준비 프로세스는 배포 엔진이 패키지의 위치 원본에 하는 요청 집합을 통해 발생합니다. 그런 다음 이러한 요청은 원본에 의해 충족된 후 배포 엔진으로 반환되고, 여기에서 압축이 풀리고 BlockMap에 대해 유효성이 검사된 후 적절한 파일로 복사됩니다.

패키지 등록

패키지 등록은 배포 프로세스의 마지막 단계입니다. 이 단계에서 두 가지 주요 작업이 수행됩니다.

  • 앱 패키지 매니페스트에 선언된 확장이 운영 체제에 등록됩니다. 이를 통해 앱이 운영 체제와 완전히 통합될 수 있습니다. 예를 들어 앱에서 .txt 파일을 열 수 있도록 하려면 앱 패키지 매니페스트에서 FileTypeAssociation 확장을 XML로 선언하고 ".txt"를 파일 형식으로 지정합니다.

    배포할 때 이 XML은 .txt 파일을 처리하도록 앱을 제대로 등록하는 데 필요한 시스템 변경 집합으로 변환됩니다. 그런 다음 앱을 대신하여 앱 모델에서 이러한 변경을 수행합니다. 앱 모델은 여러 가지 확장을 지원합니다. 이러한 확장에 대한 자세한 내용은 앱 계약 및 확장을 참조하세요.

  • 모든 리소스 패키지가 리소스 관리 시스템에 등록됩니다. 그런 다음 앱이 실행될 때 리소스 패키지를 사용하여 사용자 환경을 최적화할 수 있습니다.

 

 

표시:
© 2015 Microsoft