登录和沙盒错误疑难解答
本主题帮助你解决电脑上开发沙盒中游戏的常见登录和沙盒相关错误。
确保你的 ID 正确
你需要确保 MicrosoftGame.config 中的以下 ID 正确:
- StoreId
- 标识/名称
- 标识/发布者
- TitleId
- SCID
- MSAAppId
若要查找 StoreId、标识/名称、标识/发布者的值:
- 请转到 Partner Center(合作伙伴中心)。
- 选择游戏。
- 选择左侧导航窗格中的“游戏设置”节。
- 转到“标识详细信息”部分,然后单击“显示详细信息”链接以展开该部分。
- 查看以下值:
- 包/标识/名称 - 这对应于 MicrosoftGame.config 中的标识/名称值。
- 包/标识/发布者 - 这对应于 MicrosoftGame.config 中的标识/发布者值。
- Store ID - 这对应于 MicrosoftGame.config 中的 StoreId 值。
若要查找 TitleId、SCID 和 MSAAppId 的值,请执行以下操作:
- 请转到 Partner Center(合作伙伴中心)。
- 选择游戏。
- 选择左侧导航窗格中的“Xbox 服务”>“Xbox 设置”节。
- 查看以下值:
- 游戏 ID(十六进制)- 这对应于 MicrosoftGame.config 中的 TitleId 值。注意:你需要十六进制值,而不是十进制值。
- MSA 应用 ID - 这对应于 MicrosoftGame.config 中的 MSAAppId 值。MSAAppId 可以是 GUID 或十六进制值。
- SCID - 此值未在 MicrosoftGame.config 文件中指定。 相反,它作为参数传递到 XblInitialize 方法。
切换沙盒
若要切换沙盒,请按照以下说明操作:
- 打开 GDK 命令提示符(可以在开始菜单中键入“GDK”,将找到 Microsoft GDK 命令提示符文件夹)。
- 键入
"XblPCSandbox.exe [sandbox ID]"
,其中 [沙盒 ID] 是你的沙盒名称(区分大小写)。
疑难解答流程
无法正常登录的原因很多。 这就是为什么在进一步调查前缩小根本原因的范围很重要。
按照以下过程缩小你看到的错误原因的范围:
- 通过登录到 Xbox 应用确保切换沙盒操作成功。 如果可以登录,则你已成功切换沙盒。 否则,你可能不在正确的沙盒中。
- 下载 Xbox 应用(如果尚未安装)。
- 创建可以访问沙盒的测试帐户(如果尚未创建)。
- 按照切换沙盒部分中的说明切换沙盒。
- 启动 Xbox 应用。 可以在开始菜单中键入“Xbox”,并且将会出现图标。
- 尝试使用测试帐户登录 Xbox 应用。
- 如果无法登录,则可能未正确切换沙盒,或者你的测试帐户无权访问此沙盒。 若要进行故障排除,请查看以下“常见错误”部分,以查找有关你遇到的错误的信息。
- 如果你可以登录,则意味着可以切换沙盒,并且你的测试帐户可以访问沙盒。 可以继续下一步。
- 接着,尝试登录到其中一个示例项目。
- 如果你正在使用 Unity,则可以使用 Unity 插件中的登录场景。 如果正在使用其他引擎,则可以使用安全下载站点 aka.ms/gdkdl 上提供的社交示例。
- 将示例中 MicrosoftGame.config 中的 ID 替换为游戏 ID。 有关如何获取 ID 的信息,请参阅“确保你的 ID 正确”部分。
- 如果尚未切换沙盒,请按照“切换沙盒”部分中的说明切换到你的沙盒。
- 构建并运行示例。
- 尝试登录示例。
- 如果无法使用示例登录,则可能是合作伙伴中心或 MicrosoftGame.config 中游戏的 Xbox 服务配置存在问题。有关其他故障排除,请参阅以下“常见错误”节。
- 如果你可以登录到示例,但不能登录到游戏,则游戏与导致问题的示例之间可能存在差异。 可以首先查找 MicrosoftGame.config 文件中的差异。 还可以查找示例的登录代码和游戏代码之间的逻辑差异。
常见错误
用户不在此沙盒中 (0x8015DC12)
此错误意味着测试帐户无权访问沙盒或游戏无权访问沙盒。 以下是此错误的常见原因列表:
- 此错误的最常见原因是 ID 不匹配。 请参阅以下“ID 不正确”部分以对该错误进行故障排除。
- 测试帐户无权访问沙盒的可能性较小,但也有可能。 创建测试帐户时,可以在新测试帐户表单底部为沙盒分配帐户访问权限。
- 另一种可能是你正在使用已隔离沙盒。 有关详细信息,请参阅有关“隔离沙盒而不是共享沙盒”部分。
ID 不正确
登录错误的一个常见原因是 MicrosoftGame.config 中的某些值不正确。 我们建议使用 MicrosoftGame.config 编辑器中的 Microsoft Store 关联向导来链接游戏,以尽量减少因键入错误而导致的错误。 还可以按照“确保你的 ID 正确”部分中的说明,手动仔细检查你在合作伙伴中心的 ID 与清单中的 ID。
无法在电脑上登录,但尚未在 Xbox 设置页面上添加电脑平台 (0x87dd0005, AM_E_XAST_UNEXPECTED)
如果收到错误消息: 0x87dd0005 (AM_E_XAST_UNEXPECTED),这通常意味着未在“Xbox 设置”页面上添加“电脑平台”。 若要解决此问题:
- 请转到 Partner Center(合作伙伴中心)。
- 导航到游戏。
- 在左侧窗格中,展开“Xbox 服务”并选择“Xbox 设置”。
- 验证是否已选中“Windows 10 电脑”复选框。
- 单击保存。
- 在“游戏设置”页面上,将 Xbox 服务设置发布到开发沙盒。
- 请等待 30 分钟,然后再次尝试登录。
重要: 在“Xbox 设置”页面上选择“保存”后,确保已将 Xbox 服务设置发布到开发沙盒。 选择保存 不会 发布更改。 需要将这些设置发布到 Xbox 服务才可了解游戏并登录工作。
沙盒 ID 拼写错误
沙盒的值区分大小写。 例如:“RETAIL”与“Retail”或“retail”不同。 虽然罕见,但这种情况可能会发生。 出现的另一种情况是由于缺少一个字母而使沙盒不正确。 最后一种情况是,如果你有多个沙盒,并且切换到与游戏发布到的沙盒所不同的沙盒。
SCID 不正确
调用 Xbox 服务时,发送正确的服务配置 ID (SCID)非常重要。 SCID 已传递到 XblInitialize 方法。 检查该值是否正确。
隔离沙盒而不是共享沙盒
除非有理由使用隔离沙盒,否则我们建议你使用共享沙盒。 可以在合作伙伴中心查看你的开发沙盒是哪种类型的沙盒。
切换沙盒时在 Microsoft Store 中找不到游戏或加载项
如果在切换沙盒时在 Microsoft Store 中找不到游戏或加载项:
检查合作伙伴中心中的可用性设置:
- 你已将游戏或附加内容发布到合作伙伴中心的沙盒中。
- 确保将可用性设置为“使此产品在 Microsoft Store 中可用和可发现”。 注意:也可以使用其他可发现性设置,只需确保你有意设置这些设置即可。
- 如果设置了可用日期,请确保其不是在将来。 如果这样做,你将无法在 Microsoft Store 中看到游戏或加载项。
使用 Xbox 应用:
- 使用 XblPCSandbox.exe 工具切换沙盒。
- 重启 Xbox 应用。
- 使用测试帐户登录到 Xbox 应用。
- 打开命令提示符。
- 运行此命令:
msxbox://game/?productId=<store ID>
如果正尝试在 Microsoft Store 中使用搜索查找游戏或加载项,则必须键入游戏的 确切 名称,否则将找不到该内容。 例如,如果游戏名为 "TestGame1",但你在搜索框中键入的是 "TestGame",则 Microsoft Store 会显示找不到该游戏。 注意:这与零售不同,你甚至可以输入“TestGa”,它会通过部分字符串匹配来找到游戏。
请尝试重启电脑
有时,电脑会进入一种状态,其中登录工作所需的一项服务处于不良状态。 有时重启可以将其修复。
确保你的游戏服务已为最新版本
我们会定期修复游戏服务,因此确保你的游戏服务已为最新版本总是值得的。 注意:我们也会自动更新这些服务,但在某些情况下,你可能拥有较旧版本。 可以在“设置”中的“添加或删除程序”中检查版本信息以及上次更新游戏服务的时间。 若要强制更新,请执行以下操作:
- 以管理员身份启动 PowerShell 并输入
"get-appxpackage Microsoft.GamingServices | remove-AppxPackage -allusers"
- 在同一 PowerShell 窗口中,输入 "start ms-windows-store://pdp/?productid=9MWPM2CQNLHN"
- 在该页面上安装应用,包括在显示时接受 UAC 提示。
- 尝试再次安装该游戏。
确保 Xbox 应用是最新的
如果电脑长时间处于开发沙盒中,则 Xbox 应用可能不是最新的。 我们会不断更新 Xbox 应用。 若要更新它,请切换到 RETAIL。 它应自动更新。 可以在“设置”中的“添加或删除程序”中检查版本信息以及上次更新游戏服务的时间。 如果不是最新,你可以:
- 确保你位于 RETAIL 沙盒中,否则在 Microsoft Store 中找不到 Xbox 应用。
- 以管理员身份启动 PowerShell 并输入
"get-appxpackage Microsoft.XboxApp | remove-AppxPackage -allusers"
- 在同一 PowerShell 窗口中,输入 "start ms-windows-store://pdp/?productid=9mv0b5hzvk9z"
- 在该页面上安装应用,包括在显示时接受 UAC 提示。
找不到 Xbox 应用
Xbox 应用在 Microsoft Store 中可用,但你 必须位于 RETAIL 沙盒中,否则应用将不在此处。 确保你位于 RETAIL 沙盒中,并在 Microsoft Store 中搜索“Xbox 应用”。
0x89245106 (E_GAMEUSER_NO_DEFAULT_USER)
这意味着当前没有默认用户。 如果出现此错误,可能意味着您调用了 XUserAddAsync(AddDefaultUsersSilently, ...)。要解决这个问题,您应该再次调用 XUserAddAsync,这次不使用 AddDefaultUserSilently,以便获得一个用户。 你还可以使用 XUserAddOptions options = XUserAddOptions::AddDefaultUserAllowingUI
选项处理在需要时显示 UI 并在不需要时静默登录的情况。
设备门户:切换沙盒不起作用
如果使用 Windows 设备门户切换沙盒时遇到错误,请改用 xblpcsandbox.exe。 不建议将 Windows 设备门户用于切换沙盒。 你可以在“切换沙盒”部分中找到说明。
Xbox 服务已关闭
如果仍然卡住,且没有看到本文档中包含的错误,则可以检查 Xbox 服务是否中断。 可以在“Xbox 状态”页面上检查。
Xbox 服务未启用
如果无法登录,请确保游戏已启用 Xbox 服务。 可以通过以下方式检查游戏是否已启用 Xbox 服务:
- 转到“合作伙伴中心”并单击游戏。
- 在侧边导航中,查找“Xbox 设置”>“Xbox 服务”。
- 如果在左侧导航栏中看不到“Xbox 服务”,则游戏未启用 Xbox 服务。
- 如果游戏需要概念审批,请与 Microsoft 代表合作以启用游戏 Xbox 服务。