我正在开发一个iDevice应用程序。我想使此应用程序的用户可以从iTunes免费下载此应用程序,但是在1周的试用期之后,将要求用户购买该应用程序。如果用户不购买它,那么他/她将不被允许使用该应用程序
使用钥匙串储存他们安装 App 的日期。卸载应用后,应用添加到钥匙串的值会保留,重新安装后可以再次访问。
https://developer.apple.com/library/ios/#documentation/Security/Reference/keychainservices/Reference/reference.html#//apple_ref/doc/uid/TP30000898-CH4g-SW7
一种选择可能是AKV提出的选择:节省NSUserDefaults
的时间,并在每次启动时进行检查。
弱点是用户可以通过从AppStore重新安装应用程序来重置试用期。
一个不错的选择是使用钥匙串,它应该在应用程序的多个安装中持久存在。
或者,您可以在服务器上存储设备的唯一标识符,并在每次应用程序启动时进行检查。
此解决方案的缺点是它需要有效的互联网连接,但它会阻止用户轻松绕过它。
最后,苹果可能不会接受具有这种行为的应用程序。通常,要求应用程序不要随着时间的推移禁用功能,即使某些边界线情况可能适用。审查指南最近可能有所变化,但据我所知,他们清楚地说明了
包含"租借"内容或服务的应用在限定时间后过期将被拒绝
在用户默认值中保存日期时间。
在每次启动应用程序时,继续检查日期差异是否不超过30天。如果更多,则显示一个弹出窗口,要求用户购买该应用程序并禁用所有功能。
编辑:在我早期,我们为Windows,试用软件游戏和应用程序做了很多这样的调整。但是,再次重新安装该应用程序会丢失已保存的数据。如果您仍然坚持不允许,则可以将其写入钥匙串或文档中的某些文件,而不是用户默认值和plist。但在某种程度上,苹果不允许有这样的应用程序。