2010-05-27 150 views
3

當用戶登錄到我的iPhone應用程序。我將它們的用戶標識和相關信息存儲在[NSUserDefaults standardUserDefaults]中。這樣,每次訪問我的應用程序時都不需要登錄。iPhone應用程序和編程更新

當我的應用程序在應用程序商店中生效並且我更新了代碼時,這些信息將會丟失 - 它們會被要求登錄嗎?如果是的話,當我進行更新時,如何保留這些信息?

雖然我無法想象這種情況,但是如果用戶在安裝後選擇刪除我的應用程序 - 我怎麼知道他們已經刪除了它?我正在使用推送通知,並希望將用戶標記爲不活動,以便我不會向他們推送通知。

非常感謝 謝麗爾

回答

6

只有測試將確定如何爲您的應用程序能夠在更新過程。這裏是文件說什麼:

文件保存在應用程序更新

更新的應用程序替換用戶下載的新 的 以前的應用程序。在此過程中,iTunes將已更新的 應用程序安裝在新應用程序 目錄中。然後在刪除舊安裝之前,將用戶的 數據文件從舊安裝 移到新應用程序目錄 。在下列目錄 文件被 保證在 更新過程中被保留:

  • APPLICATION_HOME> /文檔
  • APPLICATION_HOME> /庫/首選項

雖然在其他用戶 目錄中的文件也可以移動, 你不應該依賴他們在更新後出現 。這裏

詳細http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/RuntimeEnvironment/RuntimeEnvironment.html

反饋服務

如果供應商試圖發送一個推送通知的應用程序,但應用程序不再設備上存在的設備報告蘋果推送通知服務的這一事實。這種情況通常在用戶卸載應用程序時發生。如果設備報告應用程序的失敗傳遞嘗試,APN需要某種方式通知提供商,以便它可以避免向該設備發送通知。這樣做可以減少不必要的消息開銷並提高整體系統性能。

爲此,Apple推送通知服務包括一個反饋服務,APN會不斷更新每個應用程序列表中存在失敗傳送嘗試的設備。設備由以二進制格式編碼的設備令牌標識。提供商應定期查詢反饋服務以獲取其應用程序的設備令牌列表,每個設備令牌都由其主題標識。然後,在驗證應用程序最近未在所識別的設備上重新註冊之後,提供商應該停止向這些設備發送通知。

http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html#//apple_ref/doc/uid/TP40008194-CH101-SW1

+0

這是偉大的,非常感謝。還有一個問題,我將如何能夠測試我的應用程序的更新過程? – Cheryl 2010-05-27 19:15:05

+0

@Cheryl請參考以下問題: http://stackoverflow.com/questions/2524326/how-to-test-an-iphone-application-update http://stackoverflow.com/questions/ 2375807/how-can-simulate-the-iphone-app-upgrade-process-in-the-sdk-simulator – Shaji 2010-05-27 19:24:50

+0

非常有幫助 - 我遵循了另一個線程中的步驟,我很高興地報告說,從一個版本到下一個不會失去我的存儲值。 感謝您的幫助 Cheryl – Cheryl 2010-05-27 20:30:53