iOS 和游戏中心 - 为托管游戏挑选 friend

标签 ios game-center

我正在尝试将 Game Center 支持添加到我们的游戏中。它已经支持 OpenFeint,但我们也想支持 GC。

基本的身份验证和使用非常简单,而且似乎工作得很好(除了沙箱非常不稳定)。但是,由于我们的架构,我们希望将 GC 主要用于挑选 friend ,而不是使用完整的邀请支持。所以,我正在寻找一种方法来使用像 GKMatchmakerViewController 这样的东西来只挑选 friend ,而不是向他们发送邀请。我想显示玩家可以选择 friend 然后只返回选择的 friend 的普通 View ,我不希望 View /GC 向选择的 friend 发送任何东西。

    GKMatchmakerViewController * mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];
    mmvc.matchmakerDelegate = my_delegate;
    mmvc.hosted = YES;

根据文档,这应该调用我的委托(delegate)的 didFindPlayers 方法,但它似乎不起作用。托管标志没有任何效果,无论有没有它 GC 似乎试图向选择的 friend 发送一些东西,然后在 UI 中短暂地显示一个文本不兼容并忽略选择的 friend 。

我在这里做一些根本错误的事情还是我想做的事情是不可能的?不兼容错误实际上是什么意思?我在两个都有沙盒用户登录的 iPad 之间运行。在不通知他们的情况下挑选 friend 真的可能吗?

编辑:

当我尝试选择 friend 时,GKMatchmakerViewController 显示的不兼容消息很奇怪。我没有找到任何关于它可能意味着什么以及可能导致它的文档。一个简单的猜测是 GC 以某种方式认为沙盒用户安装了我的游戏的不同版本,并且这些版本不兼容。这个游戏已在应用商店中提供,但没有 GC 网络。沙盒环境能以某种方式从中获取一些信息吗?但是,没有在垫子上安装旧版本的游戏。

最佳答案

对于那些仍然遇到这个问题的人。查看您的构建阶段,运行脚本部分。就我而言,我使用了其中一个自动增加内部版本号的脚本,这是跟踪此类事情的一种常见做法。但是,Game Center 不会接受这种方法。该脚本实际上采用 CFBundleVersion 并将其增加 1(有多种技术,我使用的技术只是 +1)。

#!/bin/bash
buildPlist=${INFOPLIST_FILE}
CFBundleVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $buildPlist)
CFBundleVersion=$(($CFBundleVersion + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $CFBundleVersion" $buildPlist

所以我在 iPhone 上安装 build,它的 build 号是 295,然后我在 iPad 上安装它,它有 296 build 版本,与 bundle 版本相同。从 Game Center 的角度来看,这两个版本是不兼容的。

尝试邀请 friend 时,普通(即时)多人游戏模式只会显示“不兼容”。回合制模式根本不会显示任何有用的东西。

整个事情令人困惑,因为在 Game Center 兼容性列表中的 iTunesConnect 上,它显示了短版本字符串(CFBundleShortVersionString),所以我假设只要我在项目设置的“版本”字段中输入相同的值,它就会起作用。但是,“构建”也必须相同。

关于iOS 和游戏中心 - 为托管游戏挑选 friend ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4470309/

相关文章:

ios - 有没有办法将多个 Apple 开发者帐户与单个 iTunes Connect 帐户关联?

iPhone QR 代码生成器和解码器

iOS,加载后启动屏幕变黑

ios - 使用尺寸类别在不同手机上调整图像尺寸

game-center - ios 9 的游戏中心沙盒

iphone - 我可以在我的应用程序上使用 Game Center Logo 吗?

ios - Game Center 的 didRequestMatchWithOtherPlayers 和 didRequestMatchWithRecipients 之间的区别?

iphone - 将 iOS 应用程序嵌入 Web 作为模拟

ios - 我应该避免在全局队列中创建 JSContexts 吗?

iPhone 游戏开发 : Achievement Framework?