> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XStore 개발 문제 해결

> 사용 권한, 샌드박스, PC 로그인 문제를 포함하여 XBOX 게임 개발 및 테스트 중의 일반적인 XStore API 문제를 해결합니다.

## 사용 권한

사용 권한이 플레이어의 구매 활동과 일치하지 않는 경우 다음 사례를 확인하세요.

* PC의 개발 샌드박스에서 테스트하는 경우, XBOX 테스트 계정은 Microsoft Store에 로그인하기 전에 XBOX 앱에 먼저 로그인해야 합니다. 테스트 계정이 Microsoft Store에 먼저 로그인하면 Microsoft Store는 기본적으로 RETAIL 환경을 사용합니다.
* 사전 예약 사용 권한은 출시일까지 비활성화되며 클라이언트 기반 사용 권한 쿼리로 반환되지 않습니다.
* 테스트 계정이 단일 샌드박스 내에서만 구매하도록 제한되도록 하세요. 계정이 여러 샌드박스에서 사용 권한을 가지고 있으면 collections 서비스가 잘못된 결과를 반환할 수 있습니다.
* 콘솔의 개발 샌드박스에서 테스트하는 경우, Microsoft Store의 제품 세부 정보 페이지에서 **Get** 버튼을 선택하거나 게임이 [XStoreShowPurchaseUIAsync](/reference/system/xstore/xstore_members)를 호출할 때 무료 제품에 대한 사용 권한이 즉시 부여됩니다. 구매가 중단되더라도 사용 권한이 부여됩니다. 자동 사용 권한 부여를 방지하려면 샌드박스에서 0이 아닌 가격으로 추가 기능 콘텐츠를 게시하세요.

사용 권한에 대한 자세한 내용은 [플레이어에게 추가 기능 콘텐츠 액세스 부여](/publishing/xstore-commerce/xstore-granting-access)를 참고하세요.

## 라이선싱

플레이어가 소유하지 않은 콘텐츠에 대해 라이선스가 획득되는 경우, 라이선스 공유나 캐싱이 디바이스에서 발생하지 않는지 확인하세요.

* 라이선스 공유 및 캐싱으로 인해 테스트 시스템이 깨끗하지 않은 상태로 남을 수 있습니다.
  * 디바이스에서 계정을 제거해도 '오프라인' 지정은 제거되지 않습니다. 지정이 변경되거나 라이선스가 만료될 때까지 오프라인 가능 라이선스는 다른 계정과 계속 공유됩니다.
  * PC에 새 계정이 추가되면 계정에 대해 '오프라인 권한' 설정이 자동으로 활성화되어 예기치 않은 라이선스 공유가 발생할 수 있습니다.
* 깨끗한 PC 환경을 보장하려면 항상 새 가상 머신에서 테스트하세요.
* 콘솔을 깨끗한 상태로 되돌리려면 다음 단계를 시도하세요.
  * 각 테스트 계정을 디바이스에서 제거하기 전에 'Home XBOX'(Settings > General > Personalization > My home XBOX)를 비활성화합니다.
  * 이전 계정의 디바이스 지정을 제거하기 위해 'Reset home XBOX'(Settings > Developer > Developer Settings)를 여러 번(15+) 실행한 다음 콘솔을 다시 시작합니다.
  * 라이선스가 계속 공유되는 경우 공장 초기화가 필요할 수 있습니다.

라이선싱에 대한 자세한 내용은 [플레이어에게 추가 기능 콘텐츠 액세스 부여](/publishing/xstore-commerce/xstore-granting-access)를 참고하세요.

## DLC(패키지가 있는 Durable)가 설치될 때 `XPackageRegisterPackageInstalled`에 할당된 콜백이 실행되지 않음

DLC 설치 상태가 명확하지 않은 경우, 먼저 `xbapp listdlc` 또는 `wdapp listdlc`를 확인하여 예상되는 DLC가 나열되어 있는지 확인합니다.

그런 다음 DLC microsoftgame.config의 `AllowedProduct`가 기본 게임의 microsoftgame.config에 있는 `StoreId` 노드와 일치하는지 확인합니다.

이 DLC가 Smart Delivery 제품이고 XBOX Series X/S 기본 게임이 ERA DLC 패키지를 사용하며, ERA DLC의 appxmanifest에 있는 `AllowedProduct`가 XBOX Series X/S 기본 게임에 할당된 제품 ID(`xbapp list /d`)와 같지 않은 경우, 제품 ID를 재정의해야 할 수 있습니다. 이 재정의는 패키지된 빌드에서만 가능합니다.

```cmd theme={null}
makepkg pack /d <dir> /pd <dir> /contentid <contentid> /productid <product ID of ERA product> /productidoverride
```

이 상황은 폐기된 XBOX Developer Portal 사이트에서 마이그레이션된 XBOX One 기본 게임에서 발생할 수 있습니다.

## PC의 `XStoreShowPurchaseUIAsync`가 구매 대화 상자를 잠시 표시한 다음 `E_ABORT`를 반환함

이 문제는 다음 경우에 발생할 수 있습니다.

* XStoreShowPurchaseUIAsync가 상승된(관리자) 프로세스에서 호출됩니다.
* 관리자 권한으로 Visual Studio에서 디버깅 중이거나 관리자 권한으로 실행되도록 설정된 프로세스에서 호출됩니다. 해결책은 관리자로 실행 중일 때 이 API를 호출하지 않는 것입니다.
* UAC(사용자 계정 컨트롤)가 대화형 사용자의 데스크톱에 확인 프롬프트를 표시하지 않도록 설정되어 있습니다.

UAC는 다음 레지스트리 값으로 관리됩니다.

`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA` `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktop`

`EnableLUA`는 `1`이어야 합니다. 경우에 따라 `PromptOnSecureDesktop`을 `0`으로 전환하는 것도 효과적일 수 있습니다.

이 [페이지](https://learn.microsoft.com/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings)에는 이 및 기타 관련 컨트롤에 대한 자세한 정보가 있습니다.

## XStore 관련 오류 코드

| 16진수 값     | 오류                                      | 설명                                  |
| ---------- | --------------------------------------- | ----------------------------------- |
| 0x803F6300 | `XSTORE_E_NULL_LICENSE_SERVICE_CONTEXT` | 라이선스 서비스 컨텍스트를 사용할 수 없습니다.          |
| 0x803F6301 | `XSTORE_E_NULL_STORE_CONTEXT`           | 스토어 컨텍스트 개체가 null이거나 초기화되지 않았습니다.   |
| 0x803F6302 | `XSTORE_E_INVALID_ID`                   | 유효하지 않거나 알 수 없는 ID가 전달되었습니다.        |
| 0x803F6303 | `XSTORE_E_INVALID_REQUEST`              | 요청에 잘못된 매개 변수나 형식이 있습니다.            |
| 0x803F6304 | `XSTORE_E_INVALID_RESPONSE`             | 스토어 서비스의 응답이 예상치 못했거나 유효하지 않습니다.    |
| 0x803F6305 | `XSTORE_E_ZERO_RESULTS`                 | 0이 아닌 결과가 예상되었을 때 0개의 결과가 반환되었습니다.  |
| 0x803F6306 | `XSTORE_E_NULL_INPUT_PARAMETER`         | 제공된 필수 매개 변수가 null입니다.              |
| 0x803F6307 | `XSTORE_E_INVALID_INPUT_PARAMETER`      | 제공된 입력 매개 변수가 유효하지 않습니다.            |
| 0x803F6308 | `XSTORE_E_INVALID_VERSION`              | 요청을 하는 클라이언트가 필요한 최소 버전을 충족하지 않습니다. |
| 0x803F6309 | `XSTORE_E_BAD_CONVERSION`               | 필요한 매개 변수나 응답을 제대로 변환할 수 없습니다.      |

## 참조 API 문서

* [XStore (API 내용)](/reference/system/xstore/xstore_members)
  * 함수
    * [XStoreShowPurchaseUIAsync](/reference/system/xstore/xstore_members)

## 참고

[커머스 개요](/publishing/xstore-commerce/xstore-commerce-overview)

[XStore 개발 및 테스트 활성화](/publishing/xstore-commerce/xstore-product-testing-setup)

[XStore API 참조](/reference/system/xstore/xstore_members)


## Related topics

- [XStoreShowPurchaseUIAsync](/ko/reference/system/xstore/functions/xstoreshowpurchaseuiasync.md)
- [플레이어에게 추가 기능 콘텐츠 액세스 부여](/ko/publishing/xstore-commerce/xstore-granting-access.md)
- [XStore 개발 및 테스트 활성화](/ko/publishing/xstore-commerce/xstore-product-testing-setup.md)
- [문제 해결](/ko/services/xbox-services/develop/troubleshooting/index.md)
- [스토어 작업에 맞게 샌드박스 제대로 전환](/ko/publishing/xstore-commerce/xstore-switching-sandbox.md)
