2011-04-14 68 views
4

有沒有辦法通過iTunes應用更新來更新包中的修改後的plist文件?iOS應用更新,如何更新包中的plist?

我有一個應用程序,它以數組&字典的形式在plist文件中存儲一些數據。在一些更新中,我添加了更多數組項目的plist文件,但似乎應用程序更新後,除非用戶刪除應用程序並重新安裝,否則不會複製/更新新的plist文件。

如何讓應用程序更新plist文件的本地副本?

回答

5

您無法更新該軟件包中的任何內容。如果您想要更新它,請將plist保存在文檔目錄中。

NSArray *arrayPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
     NSUserDomainMask, YES); 
NSString *documentsDirectory = [arrayPaths objectAtIndex:0]; 

使用商店更新應用程序時,文檔目錄中的文件不會被刪除。

+0

因此,如果我通過代碼將更新的plist文件移動到文檔目錄,是否會覆蓋/更新任何現有的plist文件? – SMSidat 2011-04-14 17:18:11

+0

只有存在相同名稱並且您選擇使用相應的NSFileManager方法覆蓋它時。 – 2011-04-14 17:22:16

1

版本化的.plist文件?例如。 MyApp-YYYYMMdd.plist

0

我在應用程序中遇到類似問題。我所要解決的是,當應用程序在應用程序委託中獲取willEnterForeground通知時,檢查應用程序是否已加載舊版本或新版本的plist文件,然後從該包中加載新文件並將其保存到文檔中目錄。

+0

你是如何去檢查版本的? – SMSidat 2011-04-14 19:10:50

+0

在我的情況下,這很容易,因爲文件中有基於日期的數據。 – onnoweb 2011-04-14 20:00:20