ios - 在 iOS 中购买应用程序后免费订阅

标签 ios ipad in-app-purchase app-store

<分区>


想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post .

关闭 8 年前

我正在为我的 iOS 应用开发货币化模型,需要一些相关技术问题的帮助。

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

  • AppStore 中的应用程序是免费的并且提供的功能非常有限,用户必须在应用程序内购买(实际上是自动续订订阅)才能访问云资源。
  • 该应用程序不是免费的,当用户购买该应用程序时,他们首先会获得免费订阅,例如30 天 - 之后他们必须按月付款。

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

最佳答案

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

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

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

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

如果您需要尽可能排除误用,您可能需要坚持第一种方法。对于第二个选项,您可能想尝试将虚假账户/辅助设备的潜在损失考虑到您的定价方案中。

然而,您问题的底线答案是:您无法确定用户是否在他第一次安装您的应用程序的设备以外的设备上重新安装了您的应用程序。

编辑: 结果我错过了一个事实,即 identifierforVendor 返回的值不会持续存在。不幸的是,这意味着您要么需要坚持第一种方法,要么依赖用户需要注册的帐户系统。转念一想这可能是更好的方法——取决于用户将能够存储在云中的内容类型,用户可能无论如何都不愿意使用多个帐户,因为云中的数据与帐户相关联。因此,多个帐户实际上可能不是问题(就像保留多个保管箱帐户不切实际一样)。

所以你的问题的答案实际上是:你无法判断用户是否正在重新安装你的应用。

关于ios - 在 iOS 中购买应用程序后免费订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22504338/

上一篇:ios - 如何根据条件在核心数据中插入数据

下一篇:ios - 各个View Controller中应用的自定义Navigation Bar Image,不符合NSUserDefaults同步

相关文章:

objective-c - SKPaymentQueue finishTransaction : within network completion block?

ios - 无效的产品标识符 : How do I verify iOS sandbox environment

ios - 以编程方式处理 View 调整高度、宽度和边距

ios - 如何自定义UINavigationController?

ios - 将 View 限制为其 super View 的最简单方法

iphone - 在CGMutablePath中绘制UIImage

iphone - 当我单击 XIB 文件时,Xcode 4.2 崩溃

ios - 修补应用内购买黑客;卡在第四步

ios - NSPredicate 多个条件无结果

ios - Swift - Unwind Segue触发错误