Google Play Game RealTime Multiplayer 的快速匹配在 iOS 模拟器上的日志中创建错误

Posted

技术标签:

【中文标题】Google Play Game RealTime Multiplayer 的快速匹配在 iOS 模拟器上的日志中创建错误【英文标题】:Quick Match of Google Play Game RealTime Multiplayer creating error in log on iOS simulator 【发布时间】:2016-11-25 23:55:57 【问题描述】:

我正在使用 Google Play 游戏服务实现实时多人游戏。 并在 cocos2d-x 上的 iphone6 模拟器中运行我的代码。

我的所有错误都显示在 CCLOG 中:

当我按下 SignedIn 按钮时,错误是: 错误:“此应用不允许查询方案 googlechrome”

当我按下 QuickMatch 按钮时,错误是:

开始/结束外观转换的不平衡调用

使用 google 登录成功后, 当我检查 isSignedIn 然后它正在返回 未登录,但实际上我已经登录了。

我想在两个玩家之间创建一个 QuickMatch。

【问题讨论】:

【参考方案1】:

此错误“不允许此应用查询方案 googlechrome”表示您没有将方案添加到应用的 .plist 文件中。您可能还需要向 plist 添加另一个名为 LSApplicationQueriesSchemes 的键并将“itms-books”方案作为字符串项添加到其中,以允许 canOpenURL 对其进行测试。请注意,如果您尝试在实际设备上运行它会更好。

<key>LSApplicationQueriesSchemes</key>
<array>
<string>xxx</string>
</array>

基于此SO ticket ios 9 对 URL 方案的处理做了一个小改动。您必须使用 Info.plist 中的 LSApplicationQueriesSchemes 键将您的应用调用的 url 列入白名单。

主要结论是,如果您对不在白名单中的 URL 调用 canOpenURL 方法,它将返回 NO,即使安装了已注册处理此方案的应用程序也是如此。将出现一个This app is not allowed to query for scheme xxx syslog 条目。

如果您对不在白名单中的 URL 调用 openURL 方法,它将静默失败。将出现一个This app is not allowed to query for scheme xxx syslog 条目。

【讨论】:

以上是关于Google Play Game RealTime Multiplayer 的快速匹配在 iOS 模拟器上的日志中创建错误的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将 Google Play Games Services Realtime Multiplayer 集成到适用于 Android 和 iOS 的 LibGDX 中?

如何将 Google Play 游戏服务添加到 AIR Game AS3?

Unity Google Game Play Services,不向排行榜提交分数

Unity3D 集成 Google Play Game Service和Google In-app pucharse

Google Play Game Services Unity:更新排行榜或解锁成就时手机重启

Google Play Game Services 和 LibGDX,如何在不显示标题栏的情况下集成?