라이선스 테스트 사용
이 문서에서는 라이선스 관련 시나리오를 테스트하기 위해 라이선스를 부여할 수 있도록 개발 빌드를 설정하는 방법을 설명합니다.
관련 시나리오 및 API
제대로 테스트 하려면 이 페이지에 설명된 대로 다음 API가 설정되어야 합니다.
API | 사용법 |
---|---|
XStoreQueryGameLicenseAsync | 평가판의 특성 또는 디스크에서 게임의 라이선스를 받는지 쿼리 |
XStoreQueryLicenseTokenAsync | 서비스 기반 유효성 검사를 위한 유효한 라이선스 토큰 생성은 라이선스 토큰 사용을 참조하세요. |
XStoreQueryAddOnLicensesAsync | 디지털 게임 라이선스에 연결된 추가 기능 라이선스(즉, 패키지 없이 지속성 라이선스) 반환 |
XStoreRegisterGameLicenseChanged | 라이선스 변경 검색에 등록(예: 전체 라이선스에 대한 평가판) |
Context
소매 시나리오에서 게임에는 플레이할 라이선스가 있어야 합니다. 이 작업은 디스크 또는 Microsoft 서비스에 대한 성공적인 라이선스 요청에 의해 충족되는 라이선스 요청에 의해 수행됩니다. 계정이 직접 구매 또는 만족 구매(예: 구독 또는 번들)를 통해 제품을 받을 자격이 있는 경우 라이선스가 부여됩니다. 공유 시나리오에서도 라이선스를 부여할 수 있으며, 자세한 내용은 게임용 제품 공유 모델에서 확인할 수 있습니다.
개발 시나리오는 기본적으로 다음 동작을 따르지 않습니다.
- 느슨한 빌드(Visual Studio F5 배포, xbapp/wdapp register/deploy)
- 로컬 패키지 빌드(makepkg, xbapp/wdapp 설치)
이러한 빌드는 라이선스 검사 또는 관련 구성 없이 시작됩니다.
대부분의 XStore
API는 라이선스와 관련된 모든 항목을 제외하고 계속 작동합니다.
라이선스로 동작하도록 빌드를 구성하려면 올바른 ID 값을 MicrosoftGameConfig에 적용해야 합니다( XStore 개발 및 테스트 사용에서 설명됨).
그런 다음, 다음 단계를 수행해야 합니다.
그런 다음 빌드를 실행하는 각 계정에 대해 플랫폼에 적합한 Store에서 제품을 구입하여 자격을 획득해야 합니다.
ContentID 가져오기
세부 정보 표시 후 패키지 페이지에서 찾을 수 있습니다.
참고 항목
샌드박스와 소매 사이의 콘텐츠 ID는 다를 수 있습니다. 게임의 소매 버전이 설치되어 있고 샌드박스에서 진행하려는 경우, 주의하세요. 지역 패키지가 포함된 경우에도 콘텐츠 ID가 달라집니다.
본체
게임 명령 프롬프트에서 xbapp list /d
(또는 DLC용 xbapp listdlc /d
)를 실행하는 스토어에서 설치된 패키지에 대해 찾을 수 있습니다.
Registered Applications by Package Full Name:
41336MicrosoftATG.InGameStoreXS_2020.7.27.0_neutral__dspnxghe87tn0
Install
Drive: Development
Size: 0.28 GB.
ContentId: {2797FA46-A93B-494C-AD80-B67C9FCA939F}
ProductId: {4C544E39-5130-3044-C057-5A3446536A00}
EKBID: {37E80840-6BE0-46F8-8EDB-92F877056087}
DisplayName: ATG In-Game Store Sample
41336MicrosoftATG.InGameStoreXS_dspnxghe87tn0!Game
PC
Xbox 앱 또는 Microsoft Store에서 패키지를 설치하면 레지스트리 위치에서 찾을 수 있습니다. Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Store\ContentId
빌드할 콘텐츠 ID 적용
느슨한 빌드의 경우 MicrosoftGameConfig에서 다음 섹션을 추가합니다.
<DevelopmentOnly>
<ContentIdOverride>2797FA46-A93B-494C-AD80-B67C9FCA939F</ContentIdOverride>
<EKBIDOverride>00000000-0000-0000-0000-000000000001</EKBIDOverride>
</DevelopmentOnly>
패키지 빌드의 경우 콘텐츠 ID를 makepkg
에 전달합니다(예: ).
makepkg pack /v /f chunks.xml /d Gaming.Xbox.XboxOne.x64\Layout\Image\Loose /pd ./output /contentid 2797FA46-A93B-494C-AD80-B67C9FCA939F
/contentid 없이 만든 패키지 빌드는 로컬 원본에서 설치할 때 MicrosoftGameConfig에서 사용할 수 있는 모든 항목 ContentIdOverride
을 적용합니다.
스토어(샌드박스 또는 소매점)에서 설치된 빌드에는 항상 적절한 콘텐츠 ID(파트너 센터에서 볼 수 있듯이)가 적용됩니다.
빌드에 EKBID 적용(콘솔에만 적용)
빌드를 라이선스로 설정하려면 콘솔에 대해서만 EKBID(Escrow Key Blob ID)를 설정해야 합니다. 대부분의 시나리오에서는 모든 0 또는 33EC8436-5A0E-4F0D-B1CE-3F29C3955039의 기본 테스트 값에서 재정의해야 합니다.
이는 다음 명령을 실행하여 할 수 있습니다.
xbapp setekbid <package full name> {<GUID that is not all zeroes or 33EC8436-5A0E-4F0D-B1CE-3F29C3955039>}
예:
xbapp setekbid 41336MicrosoftATG.InGameStoreXS_2020.7.27.0_neutral__dspnxghe87tn0 {00000000-0000-0000-0000-000000000001}
이는 PC와 관련이 없습니다(예: 아니요 wdapp setekbid
).
평가판 및 EKBID
평가판의 경우 실제 EKBID를 적용해야 합니다.
스토어에서 설치된 빌드에대해 위에서 본 xbapp list /d
출력에서 확인할 수 있습니다.
자세한 내용은 게임에 대한 평가판 구현에서 찾을 수 있습니다.
테스트 계정이 샌드박스에서 게임 자격이 있는지 확인합니다.
이 작업을 수행하는 가장 쉬운 방법은 샌드박스에만 게시된 제품을 검색할 수 없으므로 프로토콜 활성화를 통해 게임의 스토어 페이지로 직접 이동하는 것입니다. 개발 콘솔 또는 PC를 게임이 퍼블리싱되는 샌드박스로 설정해야 합니다. 자세한 내용은 Xbox 서비스 샌드박스 개요 및 특히 PC 스토어 작업에 대한 올바른 샌드박스 전환을 참조하세요.
로그인한 후 Store 프로토콜 링크를 사용하여 다음의 Store 페이지에 연결합니다.
콘솔의 경우:
게임 명령 프롬프트 사용:
xbapp launch ms-windows-store://pdp/?productid=<storeID>
PC:
실행 상자(⊞Win +R) 또는 웹 브라우저에서
msxbox://game/?productId=<storeID>
(Xbox 앱에서 게임을 표시하기 위해)
또는
ms-windows-store://pdp/?productid=<storeID>
(Microsoft Store에서 게임을 표시하기 위해)
Store 페이지에서 구매 또는 받기를 선택하여 테스트 계정에 대한 게임 라이선스를 획득합니다. 이렇게 하면 패키지 다운로드 및 설치가 시작되지만 단지 로컬 빌드를 반복하는 데에만 관심이 있다면 취소할 수 있습니다.
중요:이 작업은 빌드를 실행하는 모든 계정에 대해 수행해야 하며 라이선스 관련 XStore API가 작동해야 합니다.
DLC
로컬 DLC의 라이선스화 하려면 콘텐츠 ID를 makepkg
에 적용하고 xbapp setekbid
를 기본값 이외의 값으로 설정해야 합니다.
기본 게임이 아닌 라이선스만 DLC를 구성해야 합니다.
이는 다음 API와 관련이 있습니다.
- XStoreAcquireLicenseForDurablesAsync
- XStoreAcquireLicenseForPackageAsync
- XStoreCanAcquireLicenseForPackageAsync
- XStoreCanAcquireLicenseForStoreIdAsync
- XStoreRegisterPackageLicenseLost
자세한 정보는 여기에서 확인할 수 있습니다.