我试图让用户在我的应用程序中尝试一些东西,但只能尝试一次。即使在用户删除应用程序后,我如何存储此信息,以便用户无法重新安装应用程序以再次尝试试用?
3 回答
您可以使用钥匙串,因为即使应用程序从设备中删除,钥匙串项目也不会被删除。(可以使用“安全擦除”将其删除,如此处所述:https ://stackoverflow.com/a/3885110/1187415 ,我对此不确定。)
不幸的是,App Store 的工作方式和沙盒工作方式的结合阻止了这种事情的发生。但是,您可以使用户多次执行该操作变得更加困难。只需在 NSUserDefaults 中放一个 BOOL 说明用户已经完成了这件事,然后拒绝再做一次。当然,用户可以删除应用程序(从而删除 NSUserDefaults),重新安装它,然后再做一次——一次。但这将是很多工作,所以有你的威慑力。
如果您对应用程序使用身份验证,则会发生这种情况。解决方案是这样的,将一个身份验证页面作为您的应用程序的起点。一旦用户登录将信息发送到您的服务器。下次即使用户删除您的应用程序并重新安装也无法使用它,您的 Web 服务器响应将被更改。
应用程序-->登录-->服务器-->响应-->打开应用程序->将响应存储在本地持久性中,每次用户重新安装应用程序时都会发生这种情况。让我们假设您的跟踪模块将通过单击按钮打开,单击按钮后,检查并从您的本地持久性中获取信息,并通过您的错误消息向用户提示。
希望这能帮助您了解服务器-客户端模型。祝您好运。
注意:一旦用户删除您的应用程序,与您的应用程序相关的所有数据都将从设备中删除。