2013-04-09 31 views
0

我想讓用戶在我的應用程序中嘗試一些東西,但只有一次。即使在用戶刪除應用程序後,如何保存此信息,以便用戶無法重新安裝應用程序以再次嘗試試用?即使應用程序被刪除,您如何儲存設備信息?

+0

你爲什麼要這麼做?聽起來對我來說,就像你只是讓一次執行就讓它變得困難一樣。如果我不得不每次都重新安裝,會阻止我使用它。如果我知道你的應用程序在我的設備上存儲了數據,我會「永遠」將它安裝在第一個地方 – griegs 2013-04-09 05:02:26

+0

不夠公平,我想我會嘗試不存儲任何東西。 – aeubanks 2013-04-09 05:14:02

+0

[有沒有辦法在應用程序安裝之間持久化應用程序數據並在iOS中卸載](http://stackoverflow.com/questions/10138115/is-there-a-way-to-persist-application-data- between-application-installs-and-unin)---你可以使用鑰匙串。 – 2013-04-09 05:18:28

回答

3

您可以使用鑰匙串,因爲即使從設備中刪除應用程序,鑰匙串項目也不會被刪除。 (它可能會被刪除與「安全抹」,如在這裏陳述:https://stackoverflow.com/a/3885110/1187415,我不知道這一點。)

0

不幸的是,App Store工作方式和沙箱工作方式的結合可以防止出現這種情況。但是,您可以使用戶更難多次執行此操作。只需在NSUserDefaults中放置一個BOOL,說用戶已經完成了這件事,並拒絕再次執行該操作。當然,用戶可以刪除應用程序(從而刪除NSUserDefaults),重新安裝它,然後再做一次 - 一次。但是這將是很多工作,所以你的威懾力。

+0

我想我會那樣做。如果沒有辦法永久存儲數據,那麼我必須這樣做。謝謝! – aeubanks 2013-04-09 05:14:57

+0

@aeubanks或者,如果您有服務器發送設備ID(MAC ID到您的服務器),並在您的服務器上留言,該設備已經使用過您的試用版,並且不應該有機會這樣做再次。 – 2013-04-09 05:18:24

+0

@NikitaP是的,我也想到了。我沒有提到它,因爲它不是他所要求的。這種事情會不會通過App Store監護人? – matt 2013-04-09 05:19:18

0

如果您爲您的應用程序使用身份驗證,則會發生這種情況。解決方案就是這樣,把一個認證頁面作爲你的應用程序的起點。一旦用戶登錄將信息發送到您的服務器。下一次,即使用戶刪除你的應用程序並重新安裝也沒有可能使用它,在你的網絡服務器響應將被改變。

應用程序 - >登錄 - >服務器 - >響應 - >打開應用程序 - >將響應存儲在本地持久性中,每次用戶重新安裝應用程序時都會發生這種情況。讓我們假設你的足跡模塊將通過點擊一個按鈕打開,一旦點擊按鈕,把你的錯誤信息從你的本地持久性和親密的用戶身上獲取信息。

希望這將有助於您瞭解服務器端客戶端模型。好運。

注意:一旦用戶刪除您的應用程序,所有與您的應用程序相關的數據將從設備中刪除。

相關問題