如何通过InApp购买限制以前可用的功能

时间:2011-05-28 16:05:35

标签: iphone ios ipad in-app-purchase

我有一个完全免费的应用。我想通过InApp购买更新它,以便限制购买某些功能,但我也希望已经下载该应用程序的任何人都可以使用所有功能。即我想更改我的应用程序,以便在将来的所有下载中使用InApp。

我过去在NSUserDefaults中记录过InApp购买,但我不确定如何以这种方式执行上述操作。有没有办法检查我的应用程序的版本,所以我知道是否要查找InApp的东西,或者有没有办法检查上次更新的日期或这样的事情?如果没有,是否有某种方式逻辑上检查用户是否已经下载更新(我不这么认为)?

3 个答案:

答案 0 :(得分:2)

你必须将这个开关挂钩到上一次构建中的一些离开。所以,也许你把文件写到图书馆目录,也许你留下了NSUserData值...在你的新版本中,点是你第一次启动时,看看你以前是否做过这个决定。如果没有,看看有没有证据表明早期的跑步。如果你有它们,在NSUserDefaults中设置一个永久开关,说“传统用户!好好对待它们!”。然后在你呈现功能时继续对该开关敏感。

告诉用户,因为他们是站着的客户,他们可以获得整个功能集,而新用户可以获得有限的设置,他们可以通过购买获得充实。更重要的是,如果他们删除您的应用并重新下载,该应用本身将是免费的,但我们将无法知道他们是旧用户。因此,他们需要了解这一点并将其纳入他们最终可能做出的关于保持应用程序的决定中。

答案 1 :(得分:1)

将您的应用作为一个全新的应用程序出售,并停止销售旧应用程序。以前下载旧版本的人将继续拥有他们购买的功能,下载新应用的用户将拥有更少的功能并且必须付费。

答案 2 :(得分:0)

NSString* vers;
vers = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 

以NSString格式获取存储在info.plist中的版本号,即“1.2.1”。 :)

更新:这不是一个正确的解决方案。我忽略了旧用户只是更新到新版本,所以查看版本号并不能确定谁已经下载了应用程序。

通常情况下,我只是删除了这个错误的答案,但最好把它留在这里,这样我就可以回过头来了解的工作,以防我再次尝试!