【问题标题】:Swift InAppPurchases - give previous customers a free lifetime subscriptionSwift InAppPurchases - 为以前的客户提供终身免费订阅
【发布时间】:2021-07-25 15:39:00
【问题描述】:
所以我的应用程序在几个月前发布到 AppStore 并且可以免费下载。我获得了 2k 用户。现在我正在实现一个自动更新订阅模式,因此未来的用户可以免费使用演示应用并订阅以获得完整的内容。
我想从“第一天”开始感谢我的用户,让他们无需支付订阅费用即可免费访问所有内容。
是否有一种“给定的方式”来实现这一点,因为这似乎是一种常见的情况。如果没有,有 IAP 经验的人是否有聪明的解决方法来处理/实施它?
谢谢大家:D
【问题讨论】:
标签:
ios
swift
in-app-purchase
free
subscription
【解决方案1】:
保罗的回答对我不起作用。其他解决方案也没有。
但我设法找到了解决方案。
如果您在应用程序中使用 CoreData 作为数据库,您可以使用我为我的应用程序找到的解决方案。
想法:
如果有人从应用商店下载该应用,他将在您的应用中收到最新的数据库版本。
如果有人更新您的应用,coredata 将执行迁移。并且此迁移通过您的数据库版本从下到上更新。
通过这种行为,我们有机会区分这两种情况。
解决方案:我们创建了两个新的数据库版本。一个只会由以前的用户更新。我们将在这里设置一个标志。新用户永远不会接触到它。
第一个新的将在任何实体(例如用户)中创建一个新的属性字段,例如isFormerUser 作为布尔值。您可以将其默认设置为 true。
现在我们创建一个第二个新(最新的)。通过核心数据映射器,如果迁移,它将采用 $source 属性。
因此,在这种情况下,所有FormerUser 都设置为True,并将保留该属性。
这里将默认为 False,因此如果 $source 不存在,请将其设置为 false(新用户)。
这个解决方案很好,因为它通过迁移/更新设置一次,你不必在你的应用中携带硬编码的东西。现在只需从 CoreData 为该属性创建一个加载/获取函数,然后设置要在 if 语句中使用的变量。