游戏中心的困境:iTunes Connect?配置文件?别的什么?

Tim*_*ber 6 cocoa itunesconnect gamekit ios game-center

我有一些令人困惑的游戏中心问题.

我的应用程序仅在iOS 6及更高版本上运行,我一直在使用标准代码对Game Center进行身份验证:

GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController, 
                                    NSError *error) {
    // Respond to authentication (failure or success) here!
}
Run Code Online (Sandbox Code Playgroud)

使用此代码,该应用程序运行良好,几周没有问题,我自己在开发过程中和~10-15 beta测试人员在临时发行版中.

在大多数情况下,对于大多数用户而言,该应用程序的行为与您期望的一样:如果您在应用程序启动时未登录游戏中心,或者登录到生产游戏中心帐户,应用程序会提示您(使用模式以游戏中心为主题的View Controller)使用Sandbox帐户登录.您登录到您的沙盒帐户,以及一切正常工作.

然而,对于一些用户来说,一些非常奇怪的事情已经开始发生.

authenticateHandler代码被称为,errornil的,但[GKLocalPlayer localPlayer].authenticatedNO,用户没有登录到游戏中心.最重要的是,没有模态游戏中心对话框提示用户登录.应用程序只需启动,authenticateHandler代码被调用,但不会进行身份验证.我认为如果Game Center应用程序允许我使用我的沙箱帐户登录,该应用程序将起作用,但它不会:登录或退出我的生产Game Center帐户,没有沙盒登录选项.

由于这只发生在某些用户身上,而且我的开发设备才刚刚开始发生,我非常怀疑这是我的代码存在的问题,并且我猜测它是iTunes Connect,配置文件,Game Center设置和之间的一些复杂的相互作用.设备上的历史等

我们的应用程序ID和iTunes Connect中启用了游戏中心(两者匹配都有App ID).

救命!

编辑

我的问题可能类似于iOS开发:验证Game Center用户的奇怪问题.针对该问题提出的解决方案是在Game Center应用程序中手动登录.这似乎是一个明智的解决方案,但我需要登录沙箱环境,我找不到在Game Center应用程序中获取沙盒游戏中心登录提示的方法.

Mar*_*ski 1

我刚刚在我的设备上尝试了如果用户禁用游戏中心会发生什么:用户无法再从应用程序内部访问游戏中心登录视图控制器。您需要发布一些说明供用户手动登录。

我还手动进入 Game Center 并登录到我的帐户(我的常规帐户和常规 iTunes 帐户),在返回我的应用程序后,我会自动重新进行身份验证,而无需额外提示。我敢打赌,如果您有一个单独的电子邮件/帐户用于沙箱 GC 帐户,您将再次收到身份验证对话框。

TL;DR:放置一些指导性文本,如果无法获得模式对话框,用户应该做什么。查看GameKit 编程指南中的 Apple 代码(PDF 第 36 页,清单 3-1)。您需要在该else部分中执行此代码。