0

目前我正在开发一款游戏 iOS 应用程序,我将提供给我的一些客户进行演示。

但是,在分发我的应用程序时,我想在我的应用程序中设置一个过期机制,这样它就会在“N”天后过期。这意味着(例如 30 天后)我的应用程序将无法运行。我可以通过使用系统日期和时间来实现这一点,这意味着每当我的程序启动时,我都会检查今天的日期和到期日期。

问题是如果用户更改系统时间,我的比较将不正确。

此外,如果用户删除并重新安装该应用程序,它将无法正常工作。

有什么帮助或建议吗?

4

2 回答 2

3

Look at Ad Hoc Distribution

Ad-hoc development builds last for 3 months, however if you want to add a time limit then you could:

Add a key-value in NSUserDefaults which stores the start date of the app (time taken from a webservice such as http://www.earthtools.org/webservices.htm#timezone) then every time the app enters the foreground check the time against it and if it is over the threshold then to cancel loading the app.

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.
}

I would recommend using RestKit to request data from the web-service.

于 2013-04-03T19:40:53.660 回答
2

当应用程序过期时,在钥匙串中存储一些东西来表明这一事实。然后只需在启动时检查,而不是日期。

或者,您可以让它检查您控制的 Web 服务。

于 2013-04-03T19:27:18.347 回答