> ## 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 開發疑難排解

> 針對 XBOX 遊戲開發和測試期間常見的 XStore API 問題進行疑難排解，包括權利、沙箱和 PC 登入問題。

## 權利

當權利與玩家的購買活動不符時，請檢查下列情況：

* 如果您是在 PC 上的開發沙箱中進行測試，XBOX 測試帳戶必須先登入 XBOX 應用程式，再登入 Microsoft Store。如果測試帳戶先登入 Microsoft Store，Microsoft Store 會預設使用 RETAIL 環境。
* 預購權利在其發行日期之前處於非作用中狀態，且不會在用戶端型權利查詢中傳回。
* 確保測試帳戶只能在單一沙箱內購買。如果帳戶在多個沙箱中擁有權利，Collections 服務可能會傳回無效的結果。
* 如果您是在主機上的開發沙箱中進行測試，在 Microsoft Store 的產品詳細資料頁面上選取 **Get** 按鈕後，或當遊戲呼叫 [XStoreShowPurchaseUIAsync](/zh-TW/reference/system/xstore/xstore_members) 時，免費產品的權利會立即授與。即使購買中止，權利也會授與。若要避免自動授與權利，請在沙箱中以非零價格發佈附加元件內容。

如需權利的詳細資訊，請參閱[授與玩家附加元件內容的存取權](/zh-TW/publishing/xstore-commerce/xstore-granting-access)。

## 授權

當玩家取得其並未擁有之內容的授權時，請確認裝置上沒有發生授權共用或快取。

* 授權共用和快取可能會讓測試機器處於不乾淨的狀態。
  * 從裝置移除帳戶並不會移除其「離線」指定。具備離線功能的授權會持續與其他帳戶共用，直到指定變更或授權到期為止。
  * 將新帳戶新增至 PC 時，可能會自動為該帳戶啟用「離線權限」設定，這可能會導致非預期的授權共用。
* 為了確保 PC 環境乾淨，請一律在全新的虛擬機器中進行測試。
* 若要將主機恢復為乾淨狀態，請嘗試下列步驟：
  * 從裝置移除每個測試帳戶之前，先為其停用「家用 XBOX」(設定 > 一般 > 個人化 > 我的家用 XBOX)。
  * 多次執行 (15+ 次)「重設家用 XBOX」(設定 > 開發人員 > 開發人員設定)，以移除較舊帳戶的裝置指定，然後重新開機主機。
  * 如果授權持續被共用，可能需要恢復原廠設定。

如需授權的詳細資訊，請參閱[授與玩家附加元件內容的存取權](/zh-TW/publishing/xstore-commerce/xstore-granting-access)。

## 安裝 DLC (含套件的耐久性產品) 時，未叫用在 `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 基礎遊戲的產品識別碼 (`xbapp list /d`) 不同，則您可能需要覆寫產品識別碼。此覆寫僅適用於封裝組建：

```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 相關錯誤碼

| 十六進位值 | 錯誤 | 描述 |
| - | - | - |
| 0x803F6300 | `XSTORE_E_NULL_LICENSE_SERVICE_CONTEXT` | 授權服務內容無法使用。 |
| 0x803F6301 | `XSTORE_E_NULL_STORE_CONTEXT` | 市集內容物件為 null 或未初始化。 |
| 0x803F6302 | `XSTORE_E_INVALID_ID` | 傳遞的識別碼無效或未知。 |
| 0x803F6303 | `XSTORE_E_INVALID_REQUEST` | 要求的參數或格式無效。 |
| 0x803F6304 | `XSTORE_E_INVALID_RESPONSE` | 市集服務的回應非預期或無效。 |
| 0x803F6305 | `XSTORE_E_ZERO_RESULTS` | 預期有非零結果時卻傳回零筆結果。 |
| 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 內容)](/zh-TW/reference/system/xstore/xstore_members)
  * 函式
    * [XStoreShowPurchaseUIAsync](/zh-TW/reference/system/xstore/xstore_members)

## 另請參閱

[商務概觀](/zh-TW/publishing/xstore-commerce/xstore-commerce-overview)

[啟用 XStore 開發和測試](/zh-TW/publishing/xstore-commerce/xstore-product-testing-setup)

[XStore API 參考](/zh-TW/reference/system/xstore/xstore_members)


## Related topics

- [XStoreShowPurchaseUIAsync](/zh-TW/reference/system/xstore/functions/xstoreshowpurchaseuiasync.md)
- [授予玩家附加元件內容的存取權](/zh-TW/publishing/xstore-commerce/xstore-granting-access.md)
- [疑難排解](/zh-TW/services/xbox-services/develop/troubleshooting/index.md)
- [開發](/zh-TW/services/xbox-services/develop/index.md)
- [正確切換沙箱以進行市集作業](/zh-TW/publishing/xstore-commerce/xstore-switching-sandbox.md)
