- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正致力于在我的游戏中集成回合制比赛,几天前我开始从 GameKit API 收到奇怪的错误,提示本地玩家未通过身份验证,尽管他已经通过身份验证。
当我启动应用程序时,authenticateHandler
被调用, View Controller 被显示,输入密码后,authenticaHandler
被再次调用,本地播放器似乎得到认证。 isAuthenticated
返回 YES
。
但是,一旦我开始使用任何 GameKit API,例如 loadFriendsWithCompletionHandler:
,就会返回一个错误,指出玩家尚未通过身份验证。
这是处理身份验证更改的代码。
[[GKLocalPlayer localPlayer] setAuthenticateHandler:^(UIViewController *viewController, NSError *error) {
if ([[GKLocalPlayer localPlayer] isAuthenticated]) {
// Player authenticated
} else {
// Player not authenticated
if (viewController != nil) {
// Present view controller
}
}
}];
这是我在调用任何 GameKit 方法时收到的错误消息。请注意,-isAuthenticated
返回错误时仍然返回 YES。
Error finding match: Error Domain=GKErrorDomain Code=6 "The requested operation could not be completed because local player has not been authenticated." UserInfo=0x14e9f950 {NSLocalizedDescription=The requested operation could not be completed because local player has not been authenticated.}
(lldb) print (BOOL) [[GKLocalPlayer localPlayer] isAuthenticated] (BOOL) $3 = YES
我正在 Game Center 沙箱中进行测试,几天前就开始了。以前,我根本没有遇到过这个问题。
当应用程序启动时,它只会发生大约三次中的一次。我已尝试删除该应用程序、重新启动我的设备、清理构建文件夹以及我能想到的所有其他方法。
我是不是遗漏了什么或者其他人是否遇到过类似的问题?
最佳答案
本富Apple documentation是一个值得一看的好地方。这是我建议的两件事 -
如果您的设备有不正确的日期。因此,请继续查看当前日期。
你可能已经做到了。我相信你 - iOS 模拟器 >> 重置内容和设置
您认为您使用 -[GKLocalPlayer loadFriendsWithCompletionHandler:]
的方式可能有问题吗?您上面的身份验证功能没有任何问题,但如果它适合您,我很乐意分享我的 -
-(void)authenticateLocalPlayer{
// Instantiate a GKLocalPlayer object to use for authenticating a player.
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){
if (viewController != nil) {
// If it's needed display the login view controller.
[self presentViewController:viewController animated:YES completion:nil];
}
else {
if ([GKLocalPlayer localPlayer].authenticated) {
// If the player is already authenticated then indicate that the Game Center features can be used.
_gameCenterEnabled = YES;
}
else {
_gameCenterEnabled = NO;
}
}
};
}
关于ios - GKLocalPlayer 身份验证不起作用,但 isAuthenticated 返回 YES(Game Center 沙箱),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23541764/
我正在构建一个游戏,我将 Apple 的服务与我自己的服务器结合使用,我想获取本地用户的电子邮件信息和昵称 最佳答案 昵称(Alias)可以通过使用得到 GKLocalPlayer *localPla
我在我的应用程序中使用 Game Center,但我在 GKLocalPlayer.authenticated 属性方面遇到了一些问题。无论身份验证过程是否成功,localPlayer.authent
我想用 GKLocalPlayer 和 saveGameData 方法保存游戏数据。 [localPlayer saveGameData:playerData withName:@"SolarFlar
我有以下用于验证 GKLocalPlayer 的代码: var cert = await GetCertificate(gameCenter.PublicKeyURL); if (cert.Verif
在Apple's Doc, generateIdentityVerificationSignatureWithCompletionHandler ,你要将 4 个参数拼接成一个数据缓冲区,其中一个是“
我正在使用游戏中心制作 Sprite Kit 多人游戏。 我正在使用以下代码获取本地播放器。 GKLocalPlayer.localPlayer() 我用它来获取像玩家 ID 和别名这样的东西: GK
我正在尝试使用 Game Center 验证 GKLocalPlayer。但是,Apple 提供的代码 - (void) authenticateLocalPlayer { [[GKLocal
我的应用会记录它是否成功通过 Game Center 的身份验证。当它开始新游戏或当用户查看得分列表时,如果本地玩家未成功通过身份验证,并且如果该应用当时未在尝试对用户进行身份验证,它会再次尝试. (
Apple 是否有任何文档涵盖用于生成由 - [GKLocalPlayer generateIdentityVerificationSignatureWithCompletionHandler:] 返
iOS7 引入了新的 GKLocalPlayer 方法 generateIdentityVerificationSignatureWithCompletionHandler()。 有谁知道如何永久使用
在沙盒模式下测试时,[[GKLocalPlayer localPlayer] displayName] 总是返回 @"Me"。这是否也发生在 Game Center 的生产服务器上? 部分解决方案是使
使用Apple的Game Center认证验证步骤outlined here ,下面的验证逻辑是用Java实现的。然而,这总是失败。 import java.net.URL; import java.
This和 this不要编译。 我的 SpriteKitSceneViewController 中的代码, var localPlayer = GKLocalPlayer.localPlayer()
请原谅我的笨拙,我是 Stackoverflow、C# 和 Objective C 的新手。 简而言之,我正在尝试做这个问题的答案,但在 PHP 中: How to authenticate the
我正致力于在我的游戏中集成回合制比赛,几天前我开始从 GameKit API 收到奇怪的错误,提示本地玩家未通过身份验证,尽管他已经通过身份验证。 当我启动应用程序时,authenticateHand
我是一名优秀的程序员,十分优秀!