如何确保我的 iPhone 应用使用 Game Center 沙盒?
Posted
技术标签:
【中文标题】如何确保我的 iPhone 应用使用 Game Center 沙盒?【英文标题】:How can I ensure my iPhone app uses the Game Center sandbox? 【发布时间】:2010-10-13 23:46:49 【问题描述】:我正在开发一款集成 Game Center 的 iPhone 游戏。游戏正在构建为调试(不是发布/分发)。在模拟器上,Game Center 始终正确使用沙盒。在 iPhone 设备本身上,它会使用沙盒运行几天,然后突然决定使用真正的 Game Center 服务器(导致错误,因为我的游戏尚未发布)。几天来一直在避开沙箱,我讨厌在模拟器上进行测试。知道如何在开发过程中一劳永逸地使用沙盒吗?
这是来自Game Kit Programming Guide的相关引用:
作为开发者,您的 Game Center 帐户可能会登录到沙盒进行测试,也可能会登录到实时环境,但不能同时登录。要更改您登录的帐户,请切换到内置的 Game Center 应用程序并注销,然后运行任何支持 Game Center 的应用程序。如果该应用程序是为开发而配置的,请输入您的测试帐户信息以登录沙盒。否则,请输入您的实时帐户信息以登录实时环境。
据我所知,我的应用是使用开发者配置文件配置的。构建模式设置为调试。我已在设备上退出 Game Center。我还尝试过退出应用商店。
【问题讨论】:
我想这是应用程序签署的配置文件...... 这会如何影响它?配置文件只是可接受设备的列表和捆绑 ID。我在这里遗漏了一些明显的东西吗? 我已经尝试了答案中列出的所有解决方案,但我遇到了同样的问题。很奇怪。 【参考方案1】:删除应用程序、从 Game Center 应用程序注销并从 Xcode 重新安装游戏是这里的帮助。
以前的版本没有集成 Game Center,并且该设备上安装了来自 App Store 的版本。删除它并从 Xcode 重新安装显然清除了一些陈旧的缓存信息,并让游戏访问沙盒服务器。
此外,我按照文档中 Apple 的建议使用单独的测试帐户,尽管我认为这没有帮助。
【讨论】:
【参考方案2】:Game Center Programming Guide 有一个部分描述何时使用和不使用沙盒环境(向下滚动到“测试 Game Center 应用程序”)。
那里的表格给人的印象是开发人员构建总是使用沙盒,但这并不是我的经验。然而,根据我的经验,如果我退出 Game Center(使用 Game Center 应用程序),当我运行我的应用程序(设备或非设备)时,它会提示我登录 Sandbox。我想这就是文档所说的,现在我正在重新阅读它。
【讨论】:
我肯定已经使用 Game Center 应用程序退出了 Game Center。反复阅读文档,寻找线索,一直没能解决。【参考方案3】:我从备份中恢复了我的 iPhone。这具有删除所有配置文件和游戏本身的效果。然后我使用 Xcode 安装和运行游戏,沙盒神奇地再次开始工作。我不确定是否需要完全恢复,或者只是删除游戏。我之前曾尝试删除所有配置文件,但没有奏效。我怀疑在我的情况下可能需要恢复。
编辑:这可能是我的想象,但 ios 4.2 似乎在一定程度上提高了沙盒的稳定性。我注意到即使在我设备上的其他发行游戏(其他公司的游戏)上,该设备似乎也让我登录到沙盒。在我退出之前,它似乎让我永久处于沙盒模式。我还没有在 4.2 中进行任何实验来测试它,因为如果它停止工作,我不愿意再次恢复我的设备。
【讨论】:
【参考方案4】:只是有一个简短的注释要补充:重置我的 iPhone 模拟器后,我认为它没有任何区别,因为登录对话框不包含“***SANDBOX***”字符串(尽管我构建的GKTapper 样本确实如此)。无论如何,当我去创建一个帐户时,它确认我已连接到沙盒。
【讨论】:
【参考方案5】:我遇到了同样的问题:Sandbox Game Center 在一些 设备上运行,其他设备显示可怕的“游戏中心无法识别此游戏”消息。 从游戏中心注销 -> 删除应用程序 -> 从 Xcode 解决方案重新安装就可以了。 感谢大家的建议。
【讨论】:
【参考方案6】:从 iOS 8 开始,必须在手机上手动设置沙盒。您必须在设置 -> 游戏中心 -> 中标记并打开Sandbox
否则它将无法正常工作并且使用调试证书,游戏中心登录将无法成功。
【讨论】:
以上是关于如何确保我的 iPhone 应用使用 Game Center 沙盒?的主要内容,如果未能解决你的问题,请参考以下文章
使用 MVC 为 iPhone 应用程序构建 RESTful API - 如何保护它?
Objective - C 如何使用 View Controller iphone 管理多个视图