2015-12-24 3 views
-1

Я разрабатываю приложение, которое заправляет жизни каждые 5 минут. Каков наилучший способ проверить время с момента последнего пополнения, чтобы пользователь не мог обмануть систему, изменив время на своем устройстве?Получить время и дату из Интернета IOS

Например, посмотрите на Candy Crush. Изменение системного времени там дает вам дополнительные жизни, и это то, что мне нужно предотвратить. Я прошел через эту ссылку iOS Development - Check Internet Time, но в этом я получаю дату и время для UTC, как я могу получить время и дату для IST.Even я использовал http://www.timeapi.org/ist/now сейчас я получаю неправильное время. Как я могу достичь этого? вы заранее

+0

Вам необходимо использовать NTP. – trojanfoe

+0

Вы можете просто получить время в UTC, начиная с timeAPI и использовать 'NSDateFormatter' для создания' NSDate'. Поскольку «NSDate» не знает о часовом поясе, вы можете использовать другой «NSDateFormatter», чтобы представить его также пользователю в часовом поясе устройства или IST, если вы действительно этого хотите. – rckoenes

ответ

-3

Попробуйте

NSDate* datetime = [NSDate date]; 
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; // Prevent adjustment to user's local time zone. 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:SS.SSS'Z'"]; 
NSString* dateTimeInIsoFormatForZuluTimeZone = [dateFormatter stringFromDate:datetime]; 

Надеется, что это помогает.

+2

Как это предотвращает использование пользователем приложения? – trojanfoe

0

Вы можете сделать запись на своем веб-сервере во время снижения уровня энергии в вашем приложении. После каждого обновления (вы можете настроить свою логику обновления) вы можете проверить с сервера «Прошло ли 5 ​​минут для этого конкретного пользователя, чтобы я мог позволить ему играть больше». Пользователь не может обмануть время вашего сервера.

Смежные вопросы