- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这是我的情况:
1) 用户第一次打开我的应用程序。我立即调用 authenticateLocalUser 尝试将他们登录到 Game Center。带有登录、创建帐户和取消按钮的弹出窗口成功出现。
2) 用户现在不想登录,因此他们单击“取消”。 (这不是他们第 3 次单击“取消”,我也没有收到“游戏中心已禁用,请从游戏中心应用程序登录以启用”消息。)用户可以继续正常使用我的应用程序。
3) 用户想稍后使用 Game Center,所以他们单击我给他们的按钮登录到 Game Center。我再次调用 authenticateLocalUser。这次,弹出窗口没有出现。事实上什么都没有发生,除了我收到这些控制台日志消息:
2012-04-26 08:38:42.861 Clink[332:707] authenticateWithCompletionHandler: enter
2012-04-26 08:38:42.863 Clink[332:707] authenticateWithCompletionHandler: exit
4) 我已经测试了立即按下再次调用 authenticateLocalUser 的按钮,以及在这样做之前等待很长一段时间。在我再次调用 authenticateLocalUser 的任何时候,再一次没有出现,我从函数中得到这个错误:
Error Domain=GKErrorDomain Code=7 "The requested operation could not be completed because local player is already authenticating."
所以似乎正在发生的事情是,当我在第 3 步中调用 authenticateLocalUser 时,我要求 Game Center 进行身份验证,但它挂断了并且没有响应我的请求。然后在第 4 步中,当我再次尝试时,它告诉我它无法处理我的请求,因为它已经在尝试进行身份验证。但是,我在第 3 步中的请求已等待长达 10 分钟的响应,但我从未从 Game Center 收到响应。
这是我的 authenticateLocalUser 函数的内容。据我所知,我没有更改我从 Apple 示例代码下载的版本。
- (void) authenticateLocalUser
{
if([GKLocalPlayer localPlayer].authenticated == NO)
{
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error)
{
[self callDelegateOnMainThread: @selector(processGameCenterAuth:) withArg: NULL error: error];
}];
}
}
有没有其他人以前遇到过这个问题或者对可能发生的事情有任何想法?我已经研究了一段时间,但不太确定发生了什么。
提前致谢!
最佳答案
当我对另一个 Game Center 帐户进行身份验证时,我遇到了同样的问题。当您使用普通帐户登录某个游戏并同时使用测试帐户登录时,就会发生这种情况。
只需重置您的设备设置,不要在测试时使用您的真实帐户登录其他游戏。当您同时执行这两项操作时,就会发生这种情况。重置您的设备设置,清理项目,应该没问题。并且仅使用测试 iTunes 帐户来测试您的游戏。
关于objective-c - Game Center 不响应 authenticateWithCompletionHandler 请求 (iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10335134/
我知道,有一些关于这方面的线索,但我并没有真正明白我必须为我的类(class)做些什么。 - (void)authenticateLocalUser { if (!gameCenterAvailabl
我正在开发使用 Game Center 的游戏,但我收到了下一个警告; ... 'authenticateWithCompletionHandler:' 已弃用:首先在 iOS 6.0 中弃用 好的,
这是我的情况: 1) 用户第一次打开我的应用程序。我立即调用 authenticateLocalUser 尝试将他们登录到 Game Center。带有登录、创建帐户和取消按钮的弹出窗口成功出现。 2
我是一名优秀的程序员,十分优秀!