2014-03-19 107 views
0

我正在开发iOS应用程序的获利模型,并且需要一些关于相关技术问题的帮助。iOS应用程序购买后的免费订阅

当前的应用程序工作流程如下:用户执行一些需要大量使用云资源(我正在为其支付)的操作。这些资源非常昂贵,所以我不希望我的用户免费加载它们。我可以在这样的情况假设有两个可能的选择:

  • 在AppStore的应用程序是免费的,提供了非常有限的功能,用户必须购买应用(其实自动再生订阅)以访问云资源。
  • 该应用程序不是免费的,当用户购买应用程序时,他们可以免费订阅第一个应用程序。 30天 - 之后,他们必须每月支付。

我知道如何实现第一个解决方案,但第二个解决方案存在问题。 我怎么知道用户只是买了我的应用程序(不重新安装它)?有没有办法做到这一点?

回答

1

您的第二种选择的一种方法可能是应用程序在首次启动时向您的服务注册当前设备。如果(以及当)该设备以前已被注册,则拒绝访问云功能。 UIDevices identifierForVendor将足以完成此任务。

这仍然允许用户在自己拥有的其他设备上第二次使用免费月,或者如果他切换到新设备。

作为一种替代方案,您可以要求用户为您的服务设置一个帐户,但当然无法阻止用户创建多个帐户。

这两种方法的组合可能能够减少误用,但不可能完全抑制这种尝试。

如果你需要尽可能地滥用规则,你可能需要坚持你的第一个方法。对于第二种选择,您可能想尝试将假帐户/辅助设备的潜在损失计入您的定价方案。

但是,对于您的问题的底线答案是:您无法确定用户是否已将应用程序重新安装在设备上安装应用程序之外的设备上。

编辑: 原来我错过了一个事实,即identifierforVendor返回的值将不会持续。不幸的是,这意味着您需要坚持您的第一种方法或依靠用户需要注册的账户系统。第二个想法可能是更好的方法 - 取决于用户将能够存储在云中的内容种类,用户可能不愿意使用多个帐户,因为云中的数据与帐户相关联。因此,多个账户实际上可能不是问题(就像保留多个Dropbox账户不切实际)。

所以你的问题的答案实际上是:你不能分辨用户是否重新安装你的应用程序。

+0

Toastor,谢谢你的伟大答案。 –

+0

据我所知,当用户删除我的应用程序,然后再次将其安装在同一设备上时,identifierForVendor会发生变化,是的?因此我认为我应该坚持第一种方法。 –

+1

不客气! – Toastor

相关问题