将付费应用升级为免费应用

8
我在应用商店上有一个付费应用(版本1.3)。我想发布更新(版本1.4),其中包含应用内购买。我计划发布免费的更新(版本1.4)。
我已经涵盖了所有可能的用户从付费版本升级到免费版本的情况。只有一种情况让我困惑。
  1. 用户已通过iTunes帐户xyz@gmail.com在iPad 2上下载了付费应用程序版本1.3
  2. iTunes上当前可用的版本是1.4,是免费的。
  3. 用户在iPad 2上下载版本1.4 [升级可以正常进行,因为我可以获取以前的UserDefaults键来识别]
  4. 用户在iPhone 6上下载版本1.4,该设备没有由xyz@gmail.com购买的版本1.3 [如何知道用户已经购买了应用程序?]
有人知道这个问题的解决方案吗?

你的应用商店日期是否在服务器上? - Rahul Patel
3
我的做法是发布一个中间版本1.3.1,并保存一些内容到钥匙串中,表明用户已经付款。在版本1.4中,您可以在请求应用内购买来解锁整个应用之前先检查此值。这并不是百分之百有效的,因为可能会有一些用户在升级到1.4之前没有安装1.3.1版本。 - Lev Landau
1
嗨@LevLandau,如果我从设备中删除应用程序,钥匙串中的值是否会持续存在? - Sneha
1
是的,如果应用程序被删除,钥匙串不会被清除。 - Lev Landau
1
或者您可以升级到1.3.1版本,免费获得高级应用内购买功能。然后提醒用户免费升级到高级版,并在一段时间后更新到1.4版本,此时应用程序是免费的,而高级应用内购买功能则正在促销中。 - Matte.Car
显示剩余4条评论
1个回答

1

列夫·朗道的评论是正确的。 如果您没有服务器集成,您需要在1.3.1版本中在用户设备上本地存储一些内容。但是,对于拥有多个设备(例如iPhone和iPad)的用户,您将遇到麻烦。我可以想到三种解决方法:

  1. 确保您的“已购买”标志保存在iCloud上
    或者
  2. 使用免费的应用内购买作为标志(牺牲用户体验)。
    或者
  3. 发布一个新的App ID为1.4的新应用,并发布一个1.3.1版本,警告您的用户关于新应用,并在Keychain中留下一个条目,您将在新应用中检索该条目(请参见此答案以了解如何在应用之间共享Keychain数据)。

请注意,方法1和2不适用于所有用户(例如,如果他们在1.4之前没有打开1.3.1)。我建议使用方法3


嗨,Quentin,我们最终选择了一款在应用内不含任何0美元购买的中间版本,并在发布免费版本后帮助那些向我们提出支持查询的人。 - Sneha
好的,很高兴听到这个!如果有帮助,请考虑接受答案 ;) - Quentin Hayot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接