2013-02-09 59 views
0

我正在实施一个试用版,然后将模型订阅到我的应用程序中,允许用户免费使用该应用程序14天,然后在试用结束时它会提醒他们试用结束,他们需要订阅才能继续使用。存储试用期限日期

我这样做是在第一次打开应用程序时设置的NSDate对象standardDefaults。然后它将当前日期与存储的日期进行比较,并将返回的时间间隔与14天内的秒数进行比较。

我的问题是这样的:如果用户删除应用程序,standardDefaults会留在内存中吗?如果不是,我如何防止用户删除然后重新下载应用程序以重新开始试用期?

回答

3

苹果很自豪他们的沙盒概念和事实,即如果一个应用程序被删除,所有的数据将被删除。

确保此信息不会丢失的唯一方法是将其保存到服务器上的数据库,并从您的应用定期检查。

这是技术方案。但是请确保,如果Apple计划在那里发布它,那么AppStore

苹果禁止试用版本,但我不确定,如果您可以免费提供应用内购买的内容一段时间,然后开始计费。

但主要规则是:曾经给予用户免费的东西必须免费。

+0

韦尔普,做好路障苹果的工作。感谢您的洞察 – Chris 2013-02-09 16:08:45

+2

这不是一个真正的路障,只是改变你的想法。免费提供一些功能,然后收取应用程序内购买费用,如果他们想要更多。 – Kekoa 2013-02-09 16:21:10

2

有些应用程序有某些功能的试用期。看看Puffin Browswer或ChessFree他们都提供过期的功能。海雀允许闪光灯支持(实际上非​​常酷的功能!),几天后,该功能被删除。尽管浏览器的其余部分仍然可以访问,但其主要用途已被删除。

ChessFree为您提供了可以用于不同的事情,课程,玩游戏,采取退步等方式的要点......我不确定当您跑出分数时会发生什么,但看起来您什么都不能做了。

如果我要实现这样的事情,我只需要在钥匙串中保存一个变量,告诉他们有多少天有剩余或者他们安装它的日期(以字符串形式)。这样,如果应用程序被卸载,它将不会被删除(即使应用程序被删除,钥匙串项目仍然保持存储,所以只需要随时检查/减少/增加)。我可能会为用户提供一些可达到过期时间限制的功能(如Puffin),但我确信相信这取决于您。

+0

请注意,appstore指南还指出,如果用户拥有多个设备 - 或者购买了新设备 - 他必须能够在所有这些设备上安装应用程序。您的方法将允许独立进行所有设备的试用。但技术有趣。 +1 – vikingosegundo 2013-02-09 16:40:45

+0

@vikingosegundo啊,我不知道这一点。在这种情况下,私人数据库将是您的最佳选择。感谢分享! – Firo 2013-02-09 17:07:29