我正在iOS上创建一个服务器驱动的游戏,允许玩家为多设备游戏创建游戏帐户。我的游戏具有非消耗品的应用内购买(IAP),可以由原始购买者恢复或重新下载。
我希望玩家无法将其IAP恢复到多个游戏帐户。根据Apple的规定,这可能吗?
以英雄学院为例,有可能。
结果是:Player2免费获得了所有IAP。
我或许可以阅读他们的iTunes帐户,并将iTunes恢复购买限制在一个游戏帐户中。实施该解决方案似乎与Apple关于恢复非消耗性IAP的指导原则相悖。
我可能会认为这些购买消费品只适用于一个帐户,但这似乎违背了Apple的指导方针,而且最终用户设计也很差。
答案 0 :(得分:1)
一个简单的解决方案是使用软消费的IAP,用户在游戏中花费购买非消费品。
即。我以5美元的价格购买了100块魔法硬币的耗材IAP捆绑套件,以便购买价值50枚魔币的Magic Bean产品。
答案 1 :(得分:0)
我怀疑答案可能在于使用像NSUbiquitousKeyValueStore这样的东西。这确实需要用户使用iCloud,但我认为大多数用户都这样做。如果我理解正确,这是一个基于iCloud的键值存储,因此将与一个特定的AppleID相关联。
通过在那里保留您自己的Hero Academy ID,我认为您实际上会将其与特定AppleID同步。这将是您的漏洞利用的第2步,Player2需要将他的AppleID和密码都给予Player1。很多人不愿意这样做。但是,有些是为了防止这种情况,我认为你必须对你的游戏进行编程,以便它检查NSUbiquitousKeyValueStore的权限。换句话说,您在使用AppleID时必须与AppleID积极关联特殊购买。
您的游戏实际上永远不会看到实际的AppleID,但它可以通过Hero Academy播放的ID来区分一个iCloud商店与其他商店。
我正在尝试在我正在开发的应用中出于类似原因做类似的事情。我没有经过足够的测试以确保上述方法有效,但到目前为止看起来很有希望。