这是我第一次进入Xcode和Objective-C的世界,所以请耐心等待。 我一直在按照谷歌开发者网站上列出的步骤在iOS上实施谷歌玩游戏服务: https : //developers.google.com/games/services/ios/quickstart 步骤1-7工作正常,我可以使用GPSignIn对象login到Google+: 完成validation。 2013-05-28 02:37:19.718 MyApp [2012:907]成功loginGoogle! Auth对象是GTMOAuth2Authentication 0x1d56ab40:{accessToken =“ya29.AHES6ZQa59aGdKmrWhKSN0ie_S_CqgLfBqKzlmHXU0Cpnxs”,refreshToken =“1 / A8dCPhVKRRgbsM4Gcp4qlkhNJc9SyyTUEVssN3A-Iro”,expirationDate =“2013-05-28 10:37:19 +0000”} 一旦我实现了第8步,虽然似乎有一个GPGManager signIn函数,我已经这样实现崩溃: -(void)startGoogleGamesSignIn { // The GPPSignIn object has an auth token now. Pass it to the GPGManager. [[GPGManager sharedInstance] signIn:[GPPSignIn sharedInstance] reauthorizeHandler:^(BOOL requiresKeychainWipe, NSError *error) { // If you hit this, auth has failed […]
我创build了一个回合制的比赛,然后继续邀请单个对手如下: GPGMultiplayerConfig *config = [[GPGMultiplayerConfig alloc] init]; // We will automatically match with one other player config.invitedPlayerIds = @[self.opponent.googlePlayID]; config.minAutoMatchingPlayers = 0; config.maxAutoMatchingPlayers = 0; [GPGTurnBasedMatch createMatchWithConfig:config completionHandler:^(GPGTurnBasedMatch *match, NSError *error) { if (error) { completion(NO); return; } }]; 在该装置放置第一步并且将下一个回合传递给我的对手装置之后,我的对手装置接收到推送通知以join比赛。 我join回应。 在这一点上,我self.match.userMatchStatus了这个受邀设备的self.match.userMatchStatus : [self.match joinWithCompletionHandler:^(NSError *error) { if (error) { completion(NO); return; } }]; 这不会给出错误。 […]
我试图在真实设备上运行Google-Play-Games iOS示例ButtonClicker2000项目。 (快速入门: https : //developers.google.com/games/services/ios/quickstart 下载: https : //developers.google.com/games/services/downloads/ ) loginGooglePlayService的过程不会显示任何错误。 我敢肯定,我的谷歌控制台项目设置正确。 在模拟器上启动时,我没有任何问题 但在一个真正的设备(它没有关系在iPhone或iPad上),当我点击快速button,我得到这个错误(在底部): INFO: Auth operation started: SIGN IN NFO: Auth operation SIGN IN finished with status VALID ERROR: Attempting to get name of an invalid Player ERROR: Attempting to get avatar URL of an invalid Player ERROR: Attempting to get id of […]
有几篇文章描述了这个问题的各个方面,但还没有一个令人满意的答案,所以我试图在这里整理它们,希望得到一个可以解决所有这些问题的权威答案。 将Google Play服务更新为自己显示的8.4.0推送通知后 Android通知在应用程序未运行时未显示其内容 gcm.notification.e = 1代表Android中的推送通知载荷是什么意思? 问题的关键在于,如果您仅创build一个仅包含数据的GCM消息(即不使用通知字段,因此不打算生成通知),并且包含content_available = True(这是获取所需行为所必需的来自iOS客户端),那么从8.4.0开始,这会在Android中产生一个不需要的空白通知。 在8.4.0之前,一切正常。 问题的细节似乎是,如果Android客户端收到一个GCM字段,它不明白,而不是忽略它,它添加一个“e = 1”字段(大概是“e”意味着错误?)作为通知即使消息之前没有任何通知,也会导致触发出现通知的代码,而不是引导应用程序处理的代码。 可能的解决方法:我想可以跟踪哪些客户端是iOS的客户端,哪些客户端是Android的服务器,并且只包含iOS客户端的content_available标记,这个问题就可以解决了。 但是,过去并不需要这样做,而且我的系统是build立在这样一种观念之上的,即我可以像客户的意图那样对客户types不知情。 content_available标志突然在Android上引起这些空白通知的事实看起来像是一个新引入的错误,但是知道它是否实际上是一个可能在8.5.0中修复的错误将是非常有用的(在这种情况下,我现在可以直接用8.3.0构build,直到8.5.0出来),或者如果它打算成为一个永久的解决scheme。 如果这不会改变,那么跟踪哪些GCM注册ID属于iOS设备,哪些属于Android设备,然后每次发出两个独立的GCM请求是正确的解决scheme? 预先感谢Google团队对这个问题的任何官方回应。