1

我想限制应用程序内的在线游戏功能,只有当有可用的更新影响在线游戏代码/引擎时。我知道如果[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"](引用自问题here)中的字符串不等于应用商店中的最新版本,我可以禁用在线游戏功能。但如果我发布不影响在线游戏体验的更新,我不想禁用在线功能。

有没有人有创造性的方式来“标记”一个版本,以便我可以检测更新是否对在线游戏有影响?添加颠覆是最好的方法吗?具有在线功能的 IE 更新更改 subversion 级别 2 (1.2.1) 而非在线更新更改 subversion 级别 3 (1.1.2)?

请注意,当更新可用时,我会禁用在线游戏功能,以防更新更改了数据包的发送方式或对评分引擎的修复等。所以我不会遇到正在播放旧版本的情况新版本和消息不匹配。(我也考虑过使用 Game Center Groups 来确保你玩的是同一个应用版本的玩家,但最终决定让用户升级是一个更好的计划)

4

1 回答 1

1

我会通过在服务器上以白名单的形式列出有效版本来解决这个问题。当检查用户是否可以在线时(例如,当他们点击多人游戏按钮时),只需 ping 您的服务器,包括用户的捆绑版本,并让服务器返回一个简单的响应,表示用户是否可以根据版本号玩他们提交了。

我在我的应用程序上做了一些相对类似的事情,根据他们正在运行的应用程序的版本将实际的代码更新推送到客户端。

于 2013-02-25T18:17:34.137 回答