<分区>
我正在为我的 iOS 应用开发货币化模型,需要一些相关技术问题的帮助。
当前的应用程序工作流程如下:用户执行一些需要大量使用云资源(我为此付费)的操作。这些资源非常昂贵,所以我不希望我的用户免费加载它们。我可以想象在这种情况下有两种可能的选择:
我知道如何实现第一个解决方案,但第二个解决方案存在问题。 我怎么知道用户只是购买了我的应用程序(而不是重新安装)?有办法做到这一点吗?
最佳答案
第二个选项的一种方法是让应用程序在首次启动时向您的服务注册当前设备。如果(以及何时)该设备之前已注册,则拒绝访问云功能。 UIDevices identifierForVendor
足以完成任务。
这仍然允许用户在他拥有的另一台设备上第二次使用免费月份,或者如果他切换到新设备。
作为替代方案,您可以要求用户使用您的服务设置一个帐户,但当然无法阻止用户创建多个帐户。
这两种方法的组合可能能够减少误用,但您不太可能完全抑制此类尝试。
如果您需要尽可能排除误用,您可能需要坚持第一种方法。对于第二个选项,您可能想尝试将虚假账户/辅助设备的潜在损失考虑到您的定价方案中。
然而,您问题的底线答案是:您无法确定用户是否在他第一次安装您的应用程序的设备以外的设备上重新安装了您的应用程序。
编辑:
结果我错过了一个事实,即 identifierforVendor
返回的值不会持续存在。不幸的是,这意味着您要么需要坚持第一种方法,要么依赖用户需要注册的帐户系统。转念一想这可能是更好的方法——取决于用户将能够存储在云中的内容类型,用户可能无论如何都不愿意使用多个帐户,因为云中的数据与帐户相关联。因此,多个帐户实际上可能不是问题(就像保留多个保管箱帐户不切实际一样)。
所以你的问题的答案实际上是:你无法判断用户是否正在重新安装你的应用。
关于ios - 在 iOS 中购买应用程序后免费订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22504338/