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

时间:2013-03-25 15:16:31

标签: ios cocoa itunesconnect game-center gamekit

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

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

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

使用此代码,该应用程序运行良好且几周没有问题,在开发期间我自己运行,并且在临时分发中有大约10-15个beta测试人员。

对于大部分时间而言,对于大多数用户而言,该应用的行为与您预期的一样:如果您在应用启动时未登录游戏中心,或者登录到生产游戏中心帐户,应用会提示您(使用模态游戏中心主题的视图控制器)使用沙盒帐户登录。您登录到您的沙箱帐户,以及一切正常工作。

对于少数用户来说,一些非常奇怪的事情已经开始发生。

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

由于这只发生在某些用户身上,而且我的开发设备才开始发生,我非常怀疑它是我的代码的问题,我猜它是一些iTunes Connect,配置文件,游戏中心设置和设备历史等复杂的相互作用等。

在我们的App ID和iTunes Connect中启用了Game Center(以及两者匹配的App ID)。

帮助!

修改

我的问题可能iOS Development: Strange problem with authenticating Game Center user类似。针对该问题提出的解决方案是在Game Center应用程序中手动登录。这似乎是一个明智的解决方案,但我需要登录到沙箱环境,我无法找到在Game Center应用程序中获取沙箱游戏中心登录提示的方法。

1 个答案:

答案 0 :(得分:1)

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

我还手动进入游戏中心并登录到我的帐户(我的常规帐户使用我的常规iTunes帐户),回到我的应用程序后,我自动进行了身份验证,没有其他提示。我敢打赌,如果您有一个单独的沙盒GC帐户电子邮件/帐户,您将再次获得身份验证对话框。

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