5

我正在 iOS 上创建一个服务器驱动的游戏,允许玩家创建一个用于多设备游戏的游戏帐户。我的游戏具有非消耗性的应用内购买 (IAP),可以由原始购买者恢复或重新下载。

我希望玩家不能将他们的 IAP 恢复到多个游戏帐户。鉴于Apple的规则,这可能吗?

以英雄学院为例,是有可能的。

  • Player1 购买他的游戏帐户和 iTunes 帐户上的所有 IAP
  • 玩家1登录玩家2的英雄学院游戏账号
  • Player1重新下载非消耗性IAP到Player2的游戏账号,赋予Player2所有IAP权限
  • Player2 在他自己的设备上登录他的游戏帐户,现在拥有所有 IAP 的权限

结果是:Player2 已免费获得所有 IAP。

我也许可以在他们的 iTunes 帐户中阅读并将 iTunes 恢复购买限制为单个游戏帐户。实施该解决方案似乎违反了 Apple 恢复非消耗性 IAP 的指导方针。

我可能认为购买是消耗品并且仅适用于单个帐户,但这似乎违反了 Apple 的指导方针,并且最终用户设计不佳。

4

2 回答 2

1

一个简单的解决方案是拥有一个软货币的消耗性 IAP,用户在游戏中花费该 IAP 来购买非消耗性物品。

即,我以 5 美元的价格购买了 100 个魔法币的消耗性 IAP 捆绑包,以购买价值 50 个魔法币的魔法豆物品。

于 2014-03-09T01:38:34.083 回答
0

我怀疑答案可能在于使用 NSUbiquitousKeyValueStore 之类的东西。这确实需要用户使用 iCloud,但我认为大多数用户都会这样做。如果我理解正确,这是一个基于 iCloud 的键值存储,因此会与一个特定的 AppleID 相关联。

通过保留您自己的英雄学院 ID,我认为您实际上可以将其与特定的 AppleID 同步。也就是说,在您的漏洞利用的第 2 步中,Player2 需要将他的 AppleID 和密码都提供给 Player1。许多人不愿意这样做。然而,有些是,为了防止这种情况,我认为你必须对你的游戏进行编程,以便它检查 NSUbiquitousKeyValueStore 的权限。换句话说,您必须在使用 AppleID 时将特别购买与您的 AppleID 积极关联。

你的游戏永远不会真正看到实际的 AppleID,但它可以通过你放置在其中的英雄学院播放 ID 来区分一个 iCloud 商店和另一个。

出于类似的原因,我正在尝试在我现在正在开发的应用程序中做类似的事情。我还没有进行足够的测试以确保上述方法有效,但到目前为止它似乎很有希望。

于 2013-11-21T02:13:48.277 回答