Skip to main content

Publisher Content 패키지

Publisher Content는 플랫폼이 설치, 백그라운드 다운로드, 무결성 검증 및 사용자 환경을 계속 관리하는 동안 자체 CDN(콘텐츠 배포 네트워크)에서 추가 게임 콘텐츠를 호스팅할 수 있게 해 주는 패키지 유형입니다. Publisher Content 패키지는 XBOX One 제품군 콘솔에서 지원되며, XBOX Series X|S 콘솔에서는 2026년 10월 GDK(GDK 2610)부터 지원됩니다. Publisher Content 패키지는 런타임에 다운로드 가능 콘텐츠(DLC)처럼 동작하여 기본 게임과 함께 설치되고, 프로세스에 탑재되며, 게임이 종료되면 탑재 해제됩니다. DLC와 달리 Partner Center를 통해 수집되지 않고, 스토어 ID가 없으며, Microsoft Store를 통해 판매되거나 라이선스가 부여되지 않습니다. 어떤 콘텐츠를 제공하고, 언제 업데이트하며, 누가 받을지는 사용자의 서비스가 결정하는 기준 원본이 됩니다.

Publisher Content를 사용하는 경우

다음 중 하나를 수행하려는 경우 Publisher Content를 고려하세요.
  • 스토어 수집 과정을 거치지 않고 소규모 라이브 서비스 업데이트(구성 데이터, 튜닝 테이블, 소규모 자산 팩)를 제공합니다.
  • 기본 게임의 모든 플레이어가 자동으로 받는 퍼블리셔 브랜드 추가 콘텐츠를 제공합니다.
  • 다른 플랫폼의 게임을 위해 이미 운영 중인 기존 CDN 및 콘텐츠 파이프라인을 재사용합니다.
  • CDN 계층에서 출시 시점, 지역 대상 지정 또는 A/B 테스트를 직접 제어합니다.
Publisher Content는 DLC를 대체하지 않습니다. 사용자별 사용 권한, 구매 흐름 또는 Microsoft Store 라이선스가 필요한 경우에는 계속해서 표준 DLC 패키지를 사용하세요.

요구 사항 및 제약 조건

  • 기본 게임당 하나의 Publisher Content 패키지만 사용할 수 있습니다.
  • 기본 게임을 소유한 모든 플레이어가 사용할 수 있습니다. 사용자별 라이선스 검사는 없습니다.
  • XBOX One 제품군 콘솔 및 XBOX Series X|S 콘솔에서 지원됩니다.
  • 기본 게임과 Publisher Content 패키지는 동일한 패키지 형식을 사용해야 합니다. 예를 들어 기본 게임이 MSIXVC2로 패키징된 경우 Publisher Content 패키지도 MSIXVC2여야 합니다.
  • Publisher Content 패키지는 작아야 합니다. 즉, 크기가 1GB 미만이어야 합니다.
  • Publisher Content 패키지는 퍼블리셔가 제공한 서명 자료로 서명되며, 기본 게임은 플랫폼이 해당 게임에 속한다고 주장하는 Publisher Content의 유효성을 검사할 수 있도록 대응하는 공개 자료를 포함합니다. 기본 게임 자체는 다른 타이틀과 동일한 방식으로 서명됩니다. 서명 자료는 패키지 형식에 따라 다릅니다.
    • XVC 및 MSIXVC — 원시 CNG 서명 키입니다. RSA-4096이 필요합니다.
    • MSIXVC2 — RSA-4096 키가 있는 X.509 인증서입니다. 인증서는 현재 유효해야 하고, 액세스 가능한 RSA 개인 키가 있어야 하며, 디지털 서명을 허용해야 합니다.
플랫폼은 Publisher Content 패키지에 대한 콘텐츠 기밀성을 제공하지 않습니다. Microsoft Store DLC와 달리 Publisher Content는 배포를 위해 암호화되지 않으므로 CDN에서 파일을 다운로드하는 누구나 해당 콘텐츠를 검사할 수 있습니다. 페이로드의 일부에 기밀성이 필요한 경우 패키징하기 전에 콘텐츠 자체 내에서 해당 부분을 암호화하세요.

구성 요소가 함께 작동하는 방식

대략적인 흐름은 다음과 같습니다.
  1. MicrosoftGame.config에서 기본 게임에 매니페스트 URL을 선언합니다. 이 URL은 CDN에 호스팅하며 언제든지 업데이트할 수 있는 작은 JSON 파일을 가리킵니다.
  2. 스토어 ID로 기본 게임을 참조하는 Publisher Content 패키지를 작성합니다.
  3. 퍼블리셔 서명 자료로 Publisher Content 패키지에 서명합니다. 기본 게임은 플랫폼이 해당 게임에 속한다고 주장하는 모든 Publisher Content의 유효성을 검사할 수 있도록 대응하는 공개 자료를 포함합니다.
  4. 플레이어가 기본 게임을 설치하면 플랫폼은 매니페스트를 가져와 현재 Publisher Content 패키지의 CDN URL을 읽고 설치를 대기열에 추가합니다.
  5. 런타임에 게임은 설치된 패키지를 열거하고 DLC를 탑재하는 것과 동일한 방식으로 Publisher Content 패키지를 탑재합니다.
콘텐츠의 새 개정판을 제공하려면 새 패키지를 CDN에 업로드하고 이를 가리키도록 매니페스트를 업데이트합니다. 플랫폼은 다음 업데이트 확인 시 변경 사항을 감지합니다.

기본 게임 설정

기본 게임의 MicrosoftGame.config 파일에 ManifestUrl 하위 요소가 있는 PublisherContent 요소를 추가합니다. 이 URL은 게임을 실행하는 모든 디바이스에서 연결할 수 있어야 합니다.
이러한 요소에 대한 자세한 내용은 PublisherContent 요소(MicrosoftGame.config) 및 ManifestUrl 요소(MicrosoftGame.config)를 참조하세요.

Publisher Content 패키지 작성

Publisher Content 페이로드와 함께 MicrosoftGame.config를 만듭니다. PublisherContentBaseProduct 요소를 사용하여 스토어 ID로 기본 게임을 참조합니다.
자세한 내용은 PublisherContentBaseProduct 요소(MicrosoftGame.config)를 참조하세요.
Publisher Content 패키지에 AllowedProducts 요소를 포함하지 마세요. 이 요소는 패키지를 표준 DLC로 식별하며 PublisherContentBaseProduct와 함께 사용할 수 없습니다.

매니페스트 작성

기본 게임에서 선언한 ManifestUrl에 작은 JSON 매니페스트를 호스팅합니다. 매니페스트에는 CDN에 있는 현재 Publisher Content 패키지를 가리키는 단일 url 필드가 포함됩니다. 게시한 후에는 해당 url의 Publisher Content를 변경하지 말고, 대신 모든 새 Publisher Content 패키지 버전을 새 url에 게시하고 그에 따라 매니페스트를 업데이트하세요.

퍼블리셔 서명 자료 생성

퍼블리셔 서명 자료는 빌드 머신에 있으며, makepkg가 기본 게임과 Publisher Content 패키지를 압축할 때 이름(또는 지문)으로 참조됩니다. 정확한 형식은 대상 패키지 형식에 따라 다릅니다.
퍼블리셔 서명 키 또는 인증서의 개인 키를 프로덕션 비밀로 취급하세요. 개인 자료에 액세스할 수 있는 사람은 누구나 플랫폼이 사용자가 만든 것으로 인정하는 Publisher Content 패키지를 생성할 수 있습니다.

XVC 및 MSIXVC 패키지의 경우

빌드 머신의 Windows CNG 키 저장소 공급자에서 RSA-4096 서명 키를 만듭니다. 다음 PowerShell 예제는 Microsoft Software Key Storage Provider에서 MyTestPubXvcSigningKey라는 이름의 내보내기 가능한 RSA-4096 서명 키를 만듭니다.
생성된 키 이름을 /usepublisherkey를 통해 makepkg pack에 전달합니다. 기본값이 아닌 CNG 키 저장소 공급자를 사용하는 경우 /publisherkeyprovider를 통해 해당 이름도 전달합니다.

MSIXVC2 패키지의 경우

주체 키가 RSA-4096 키인 X.509 인증서를 만들고, 인증서와 해당 개인 키를 CurrentUser\My 인증서 저장소에 설치합니다. 다음 PowerShell 예제는 CurrentUser\My에 자체 서명된 RSA-4096 인증서를 만들고 해당 .cer 파일을 내보냅니다.
내보낸 .cer 경로 또는 인증서 지문을 /usepublishercert를 통해 makepkg pack에 전달합니다. 인증서가 My 이외의 저장소에 설치된 경우 /publishercertstore를 통해 해당 이름도 전달합니다.

기본 게임 및 Publisher Content 패키징

두 pack 호출 모두 동일한 키 또는 인증서를 참조해야 합니다.

XVC 및 MSIXVC 패키지의 경우

기본 게임을 패키징합니다.
Publisher Content를 패키징합니다.
Microsoft Software Key Storage Provider 이외의 CNG 키 저장소 공급자를 사용하는 경우 두 명령 모두에 /publisherkeyprovider <providername>을 추가합니다.

MSIXVC2 패키지의 경우

기본 게임을 패키징합니다.
Publisher Content를 패키징합니다.
인증서가 CurrentUser\My 이외의 저장소에 설치된 경우 두 명령 모두에 /publishercertstore <store>를 추가합니다. 자세한 내용은 패키지 만들기(makepkg.exe)를 참조하세요.

게시 및 업데이트

Publisher Content 패키지는 사용자의 CDN에 호스팅되며 Partner Center에 업로드할 수 없습니다. makepkg upload는 느슨한 형식과 패키지 형식 모두의 Publisher Content 패키지를 거부합니다. 기본 게임 패키지는 표준 Partner Center 흐름을 통해 정상적으로 업로드됩니다.
  1. 패키징된 Publisher Content XVC를 매니페스트에서 참조한 URL로 CDN에 업로드합니다.
  2. 매니페스트 JSON을 기본 게임의 ManifestUrl 요소에 선언한 URL로 업로드합니다.
  3. 평소와 같이 Partner Center를 통해 기본 게임을 제출하고 출시합니다.
업데이트를 배포하려면 다음을 수행합니다.
  1. 새 Publisher Content 패키지를 새 URL로 CDN에 업로드합니다. 이전 Publisher Content 패키지를 교체하지 마세요.
  2. 새 패키지를 가리키도록 매니페스트의 url 값을 업데이트합니다.
  3. 업데이트된 JSON 파일을 기본 게임의 ManifestUrl 요소에 선언한 URL로 업로드합니다.
설치된 디바이스는 다음 업데이트 확인 시 변경 사항을 감지하고 새 Publisher Content 패키지를 백그라운드에서 다운로드합니다.

런타임에 Publisher Content 액세스

런타임에는 DLC를 검색하는 것과 동일한 방식으로 XPackageEnumeratePackages를 사용하여 설치된 Publisher Content를 검색한 다음, 반환된 패키지를 XPackageMountWithUiAsync로 탑재합니다. XPackageKind::PublisherContent를 전달하여 열거 대상을 Publisher Content로만 필터링합니다.
다른 원본에서 이미 패키지 식별자를 얻은 경우 XPackageGetPackageKind를 사용하여 해당 식별자가 Publisher Content 패키지를 가리키는지 확인합니다.
Publisher Content는 Microsoft Store를 통해 라이선스가 부여되지 않으므로 탑재하기 전에 XStoreQueryPackageIdByKind를 호출하거나 스토어 라이선스 검사를 수행할 필요가 없습니다.

제거 동작

플레이어가 기본 게임을 제거하면 플랫폼은 연결된 Publisher Content 패키지를 자동으로 제거합니다. 게임 코드에서 명시적으로 제거할 필요는 없습니다.

함께 보기

마지막 수정일 2026년 10월 6일