2013-02-15 68 views
1

我有一個遊戲,用戶每小時可以進行一次特定活動。我如何確保自上次嘗試某些內容後一小時內沒有在設置中更改設備當前時間?另外,如果我想阻止用戶只是刪除應用程序並重新安裝它,以便他們可以不停地嘗試而不必等到整整一個小時,那麼即使在經過一段時間之後,我仍然可以將數據存儲在設備上應用程序刪除或將必須是服務器的東西?自上次嘗試以來的時間跟蹤時間__

如果我沒有服務器,任何人都可以通過免費的應用內購買或其他方式想到一個聰明的方法來做到這一點?

+0

你可以在iCloud中存儲東西 – dthien 2013-02-15 04:24:02

+1

@dthien iCloud是一個同步服務。如果您從設備上刪除應用程序,則會刪除應用程序的關聯數據。刪除將同步到iCloud,這也將刪除數據。 – 2013-02-15 04:25:29

+1

作弊者將永遠作弊。如果只是一場比賽,我不會放鬆太多的睡眠。 – vonbrand 2013-02-15 04:46:31

回答

4

survives app reinstalls將其保存到keychain的方式來保存數據的唯一方法。這是有效的,因爲鑰匙串數據可能是shared across multiple applications;在卸載時,應用程序的其餘數據將被刪除。

如果您需要一種可靠的方式來告訴當前時間,該設備必須連接到互聯網。在這種情況下,您可以通過NTP使用其中一種時間服務檢查當前時間。

+0

後續問題:你知道允許多少數據存儲在鑰匙串中嗎? – 2013-02-15 17:02:48

+1

@AlbertRenshaw與我能找到的答案最接近的是[this](http://stackoverflow.com/a/13488926/335858),但我強烈懷疑它是依賴於操作系統的。儘管如此,它應該足夠單一的日期。 – dasblinkenlight 2013-02-15 17:06:19

2

這聽起來像你需要服務器的任務。

當用戶想要執行此限制動作時,讓他們向服務器請求許可。您可以記錄用戶的ID和請求時間,決定是否可以執行該操作,然後返回一個小的成功/失敗消息。如果他們改變了他們的時鐘,如果他們從不同的設備登錄,則工作,如果他們擦拭設備數據,則工作。