2011-03-24 226 views
2

我讀過here和其他地方以下的事情:iPhone - 應用程序內購買:記錄購買

最後,提供了功能後, 你應該「記住」用戶 購買了應用程序。蘋果 推薦的方法是使用 NSUserDefaults的,你存儲 設置相同的方式。

但是...如果我沒有錯,當你從你的手機中刪除應用程序(而不是從iTunes),如果你從iTunes以後恢復之時,首選項被刪除,並恢復其默認值。是對的嗎 ? 所以,我在正確的說,這樣做的方式,如果用戶從手機中刪除應用程序和一些幾周後從iTunes資料庫重新安裝它,它的應用內購買會丟失?

回答

5

是的,你是正確的。當用戶刪除應用程序時,NSUserDefaults也會被刪除。然而,應用程序商店有一個方便的恢復購買功能,您可以要求被告知,蘋果已經記錄了當前用戶的購買。

似乎有不要被檢測的購買需要恢復(至少從我所看到的在這裏)的好方法,大多數開發商似乎只是提供一個按鈕,手動啓動恢復過程。

還有一種替代方案,即將用戶購買的鑰匙串存儲在當前(至少現在)而不是當應用程序被卸載時被刪除。我已經確認這是iOS 4.3的情況 - 儘管它可能不會永遠保持這種狀態。

這裏是一些sample code that demonstrates both restore purchases, and using the keychain to save purchases