ios - 游戏中心问题 : iTunes Connect? 配置文件?还有别的吗?

标签 ios cocoa app-store-connect game-center gamekit

我遇到了一些非常令人困惑的 Game Center 问题。

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

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

使用此代码,该应用程序在开发期间和 ~10-15 个 beta 测试人员在临时发行版中运行良好且没有问题数周。

对于大部分时间和大多数用户而言,该应用程序的行为与您预期的一样:如果您在应用程序启动时未登录 Game Center,或者登录到生产 Game Center 帐户,该应用程序会提示您 (使用模态 Game Center 主题的 View Controller)以使用 Sandbox 帐户登录。您登录到您的沙盒帐户,一切正常。

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

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

因为这只发生在一些用户身上,而且我的开发设备才刚刚开始发生,我非常怀疑这是我的代码的问题,我猜测这是两者之间的某种复杂的相互作用iTunes Connect、配置文件、Game Center 的设置和设备上的历史记录等。

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

帮助!

编辑

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

最佳答案

我刚刚在我的设备上尝试了如果用户禁用了 Game Center 会发生什么情况:用户无法再从应用程序内部访问 Game Center 登录 View Controller 。您需要发布一些说明供用户手动登录。

我还手动转到 Game Center 并登录到我的帐户(我的常规帐户和我的常规 iTunes 帐户),在返回我的应用程序后,我在没有额外提示的情况下自动进行了身份验证。我敢打赌,如果您有一个单独的电子邮件/帐户用于沙盒 GC 帐户,您将再次获得身份验证对话框。

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

关于ios - 游戏中心问题 : iTunes Connect? 配置文件?还有别的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15618418/

相关文章:

objective-c - NSScrollView 不适用于 Mountain Lion

ios - 生成二进制文件在 iTunes 连接中不可见

ios - 将元数据添加到我的应用内购买 ios

iphone - 在应用商店上找不到我的应用

objective-c - 自动创建的 NSManagedObject 子类不使用 ARC

cocoa - 如何引用位于同一个 NSWindow 中的 Cocoa 控件?

macos - 自定义 View ,Macos,Swift,让我的 EmptyView = self.moveView(frame : viewRect) viewRect cannot be found

objective-c - 自定义 iOS UILocalNotification 声音不播放(可能与 Xcode 更新有关)

ios - 在 iOS 上保存 iCloud Drive 安全范围的 URL (UIDocumentPickerViewController)

iphone - iOS API在4.x和5.x之间的区别