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
代码被称为,error
是nil
的,但[GKLocalPlayer localPlayer].authenticated
是NO
,用户没有登录到游戏中心.最重要的是,没有模态游戏中心对话框提示用户登录.应用程序只需启动,authenticateHandler
代码被调用,但不会进行身份验证.我认为如果Game Center应用程序允许我使用我的沙箱帐户登录,该应用程序将起作用,但它不会:登录或退出我的生产Game Center帐户,没有沙盒登录选项.
由于这只发生在某些用户身上,而且我的开发设备才刚刚开始发生,我非常怀疑这是我的代码存在的问题,并且我猜测它是iTunes Connect,配置文件,Game Center设置和之间的一些复杂的相互作用.设备上的历史等
我们的应用程序ID和iTunes Connect中启用了游戏中心(两者匹配都有App ID).
救命!
我的问题可能类似于iOS开发:验证Game Center用户的奇怪问题.针对该问题提出的解决方案是在Game Center应用程序中手动登录.这似乎是一个明智的解决方案,但我需要登录沙箱环境,我找不到在Game Center应用程序中获取沙盒游戏中心登录提示的方法.
我刚刚在我的设备上尝试了如果用户禁用游戏中心会发生什么:用户无法再从应用程序内部访问游戏中心登录视图控制器。您需要发布一些说明供用户手动登录。
我还手动进入 Game Center 并登录到我的帐户(我的常规帐户和常规 iTunes 帐户),在返回我的应用程序后,我会自动重新进行身份验证,而无需额外提示。我敢打赌,如果您有一个单独的电子邮件/帐户用于沙箱 GC 帐户,您将再次收到身份验证对话框。
TL;DR:放置一些指导性文本,如果无法获得模式对话框,用户应该做什么。查看GameKit 编程指南中的 Apple 代码(PDF 第 36 页,清单 3-1)。您需要在该else
部分中执行此代码。
归档时间: |
|
查看次数: |
1021 次 |
最近记录: |