Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS从付费应用程序切换到免费应用程序,如何知道之前是谁购买了该应用程序?_Ios - Fatal编程技术网

iOS从付费应用程序切换到免费应用程序,如何知道之前是谁购买了该应用程序?

iOS从付费应用程序切换到免费应用程序,如何知道之前是谁购买了该应用程序?,ios,Ios,我有一个在iOS 4上发布的付费应用程序。它还没有更新,我现在正在修改它,以便与iOS 10配合使用。由于应用程序内购买不是一件事,我制作了一个免费(lite)和付费版本的应用程序。我想将付费版本更新为iOS 10,并将其从付费改为免费,同时添加广告和应用内购买以删除广告 我试图研究各种方法,但我没有找到一种简单易行的方法,也没有证据表明这种方法在所有情况下都有效。我发现的两种最普遍的方法: 使用现有的UserDefaults键值确定他们是否打开了旧应用程序,然后在新版本中不授予他们任何广告 我

我有一个在iOS 4上发布的付费应用程序。它还没有更新,我现在正在修改它,以便与iOS 10配合使用。由于应用程序内购买不是一件事,我制作了一个免费(lite)和付费版本的应用程序。我想将付费版本更新为iOS 10,并将其从付费改为免费,同时添加广告和应用内购买以删除广告

我试图研究各种方法,但我没有找到一种简单易行的方法,也没有证据表明这种方法在所有情况下都有效。我发现的两种最普遍的方法:

  • 使用现有的UserDefaults键值确定他们是否打开了旧应用程序,然后在新版本中不授予他们任何广告
  • 我不认为这种方法会起作用,因为如果应用程序被卸载,或者用户在更新后重新下载,他们就不会有那个值

  • 我相信iOS 7提供了收据检查。使用收据检查确定用户是否已为应用付费,并检查日期是否早于新版本日期
  • 我也不确定这是否有效。我在文档中看到了本地验证。如果应用程序最初是iOS 4应用程序,我需要的一切都会存在吗?这是否适用于通过促销代码使用该应用程序的用户?如果他们在打开应用程序时没有互联网连接怎么办?我很难找到此选项的示例代码进行测试


    我该怎么做呢?以上的方法是唯一的方法还是其他方法

    在我找到的关于这个主题的所有资源中,检查收据似乎是你唯一可行的选择。如果您有购买应用程序的帐户,您可以使用该帐户通过Xcode运行新版本的应用程序,并查看收据验证是否为您提供了预期信息。虽然通过Xcode安装应用程序可能会更改帐户的收据,但您可能需要对此进行检查

    如果您在iOS 4版本上将任何值设置为
    NSUserDefaults
    ,则
    NSUserDefaults
    选项都可以工作