iOS从付费应用切换到免费应用,如何知道谁以前购买过应用?
问题描述:
我有一个在iOS 4上发布的付费应用程序。它尚未更新,我现在正在对其进行重新设计,以便与iOS 10一起使用。由于在应用程序采购中不是什么东西,我制作了免费(lite)和付费版本的应用程序。我想将付费版本更新到iOS 10,并通过广告和应用程序内购买将其从付费更改为免费,以删除广告。iOS从付费应用切换到免费应用,如何知道谁以前购买过应用?
我尝试过研究各种方法,但我还没有找到一种可以在任何情况下工作的傻瓜证明方式或证据。我发现了两种最具优势的方法:
- 使用现有的UserDefaults键值来确定他们是否打开旧应用程序,然后在新版本中向他们授予没有广告。
我不认为这种方法会起作用,就像应用程序被卸载或用户在更新后重新下载它们不会有该值一样。
- 我相信iOS 7提供了收据检查功能。使用收据检查来确定用户是否为应用付款,并检查日期是否在新版本日期之前。
我不确定这是否也可以。我在文档中看到要在本地进行验证。如果应用程序最初是iOS 4应用程序,我需要的所有东西都存在吗?这是否适用于通过促销代码获得应用的用户?如果他们在打开应用程序时没有互联网连接会怎么样?我无法找到此选项的示例代码来测试。
我该怎么做呢?以上任何一种方法是唯一的方法还是其他方法?
答
在我发现关于此主题的所有资源中,检查收据似乎是您唯一可行的选择。如果您有一个帐户购买了您的应用程序,则可以通过该帐户的Xcode运行该应用程序的新版本,并查看收据验证是否为您提供了预期的信息。虽然通过Xcode安装应用程序可能会改变该帐户的收据,但您可能需要检查该收据。
NSUserDefaults
如果您在iOS 4版本上将任何值设置为NSUserDefaults
,则此选项可以正常工作。