目前我正在开发一款游戏iOS应用程序,我会给一些客户进行演示。
但是,虽然我的应用程序的分发我想在我的应用程序中设置一个到期机制,以便它将在“N”天后过期。 这意味着(例如30天后)我的应用程序无法正常工作。我可以通过使用系统日期&时间,这意味着每当我的程序开始时,我都会检查今天的日期和到期日期。
问题是如果用户更改系统时间,我的比较将不正确。
如果用户删除&重新安装应用程序,它不会工作。
任何帮助或建议?
答案 0 :(得分:3)
临时开发构建持续3个月,但是如果您想添加时间限制,那么您可以:
在NSUserDefaults
中添加一个键值,用于存储应用的开始日期(从http://www.earthtools.org/webservices.htm#timezone等网络服务中获取的时间),然后每次应用进入前台时检查时间并且如果超过阈值则取消加载应用程序。
NSDate *now = //load current datetime from restkit
NSDate *startDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"startDate"];
NSDate *futureDate = [NSDate dateWithTimeInterval:60 * 60 * 24 * 30 sinceDate:startDate];
if ([futureDate compare:now] == NSOrderedAscending) {
//stop the application loading by loading a NIB and displaying a message.
}
我建议使用RestKit从网络服务请求数据。
答案 1 :(得分:2)
当应用程序过期时,在Keychain中存储一些内容以指示此事实。然后在启动时检查,而不是日期。
或者,您可以检查您控制的网络服务。