Iphone 什么';iOS StoreKit遗留/升级支持的最佳实践是什么?

Iphone 什么';iOS StoreKit遗留/升级支持的最佳实践是什么?,iphone,ios,upgrade,legacy,storekit,Iphone,Ios,Upgrade,Legacy,Storekit,我正在开发一款iPhone应用程序,到目前为止,它使用的是统一定价模式。在下一个版本中,计划是降低基本功能集和价格,然后让用户选择在应用程序内购买功能包 添加应用内购买似乎非常简单。我担心的是,对于目前拥有该应用程序的用户,我不知道该如何处理遗留支持,因为在升级时,他们仍然可以访问所有功能。即,传统用户不应失去对功能的访问权;他们应该被视为已经支付了费用 我认为,处理这个问题的最简单方法是对plist文件(或NSUserDefaults)中是否存在标志进行一些常规测试:如果没有标志,则是从以前的

我正在开发一款iPhone应用程序,到目前为止,它使用的是统一定价模式。在下一个版本中,计划是降低基本功能集和价格,然后让用户选择在应用程序内购买功能包

添加应用内购买似乎非常简单。我担心的是,对于目前拥有该应用程序的用户,我不知道该如何处理遗留支持,因为在升级时,他们仍然可以访问所有功能。即,传统用户不应失去对功能的访问权;他们应该被视为已经支付了费用

我认为,处理这个问题的最简单方法是对plist文件(或NSUserDefaults)中是否存在标志进行一些常规测试:如果没有标志,则是从以前的版本升级

另一种是当内核检测到应用程序的更新版本首次启动时触发的回调。然而,我在可用的文档中找不到多少关于这种支持的信息

有人能推荐一下吗


编辑:还有两个相关的场景需要解决:

1) 用户已安装应用程序的旧版本。他们升级了,但后来卸载了应用程序。当他们重新安装(商店中的新版本)时,他们仍然可以访问旧功能

2) 用户卸载了应用程序的旧版本,但决定从应用商店安装更新版本。就应用程序而言,这是一个全新的安装

(1) 似乎可以通过让升级过程在StoreKit中创建大量$0购买来解决。这样,苹果对恢复应用程序(和购买)的支持就应该起作用了

至于(2),我不知道是否有办法解决这个问题。

我尝试了第一种方法(检查plist文件值是否存在),它对正在更新的人有效,但对那些删除应用程序然后下载并尝试使用更新的人无效。(或者,如果他们在任何时候删除应用程序并重新安装,就会丢失该功能)

幸运的是,我有一种使用“促销”代码激活功能的机制,因此当一些用户抱怨他们已经为以前的版本付费,但在他们成为应用内购买时不再拥有某些功能时,我会向他们发送一个促销代码,以响应该功能。不太理想,因为我无法验证他们是否真的购买了它,但只有少数人甚至提出了要求。

我尝试了第一种方法(检查是否存在plist文件值),它对正在更新的人有效,但对那些删除了应用程序,然后下载并尝试使用更新的人无效。(或者,如果他们在任何时候删除应用程序并重新安装,就会丢失该功能)


幸运的是,我有一种使用“促销”代码激活功能的机制,因此当一些用户抱怨他们已经为以前的版本付费,但在他们成为应用内购买时不再拥有某些功能时,我会向他们发送一个促销代码,以响应该功能。不太理想,因为我无法验证他们是否真的购买了它,但只有少数人问过。

我只是在考虑你提到的人们删除应用程序的问题。在我看来,一种方法是让应用程序在升级时执行“假”购买(0美元),以便在用户重新安装时恢复。然而,对于那些删除了该应用程序,后来又想尝试新版本的人来说,这是行不通的。有一个促销代码可能是一个很好的解决办法;谢谢你的建议。你不能进行0美元的应用内购买。最低是0.99美元(在美国)。我正在考虑你提到的人们删除应用程序的问题。在我看来,一种方法是让应用程序在升级时执行“假”购买(0美元),以便在用户重新安装时恢复。然而,对于那些删除了该应用程序,后来又想尝试新版本的人来说,这是行不通的。有一个促销代码可能是一个很好的解决办法;谢谢你的建议。你不能进行0美元的应用内购买。最低价格为0.99美元(在美国)。