2014-04-21 70 views
2

我已經編寫了iOS應用程序的新版本(1.0.1)。該應用程序的背景是它從服務器下載文件並存儲在文檔中。按照Apple的指導原則,用戶生成的任何文件都不應該備份到雲上,因此我將它們標記爲NSURLIsExcludedFromBackupKey。但是現在,當我使用Adhoc分發配置文件更新設備時,「文檔」文件夾中的任何用戶生成的文件都將被刪除。iOS應用程序更新新版本從Documents文件夾中刪除文件

是否有任何方法可以避免刪除這些文件,因爲這些是用於運行應用程序的基本文件。

+0

你有把任何代碼替換文檔文件夾的內容嗎? – Retro

+0

不,這是一個正常的更新過程,我假設如果應用程序將被更新,那麼它應該保留這些文件。如果可能,是否需要編寫任何自定義代碼以避免更新過程中的刪除? –

+0

如果您要將文件從捆綁複製到文檔文件夾,請檢查文件是否存在,然後不要覆蓋它。 – Retro

回答

2

你似乎有東西倒退。你應該備份用戶生成的文件。你不應該備份的文件可以通過再次下載或根據需要再次生成它們來輕鬆替換。

如果您將文件標記爲從備份中排除,那麼意味着文件可以輕鬆替換。

當您安裝應用更新時,這些文件不會被複制到更新的應用。首次運行時,您的應用程序應檢測到它們已丟失,並在需要時自動替換它們。

如果這些文件不能被自動替換,那麼不要用NSURLIsExcludedFromBackupKey來標記它們。

+1

感謝您的建議,這是有道理的。但問題是,我通過標記NSURLIsExcludedFromBackupKey(根據Apple的建議)將圖像存儲在Documents文件夾中,它可以是100張圖像,可以使用多達100個MB。要在更新後再次重新下載這些文件是不現實的,必須有某種方式來存儲某處並更新應用程序而無需重新下載它們? –

+2

還有一件事要提,根據Apple的限制,我無法在沒有NSURLIsExcludedFromBackupKey的情況下存儲這些文件,因爲您無法在我的文檔中存儲超過10MB的應用程序生成文件以避免大規模的icloud備份。 –

+0

我有和上次評論中建議的完全相同的問題。 Apple會阻止您備份大文件,並會拒絕您的應用程序,如果這些文件未標記爲NSURLIsExcludedFromBackupKey。那麼解決方案是什麼?期望用戶必須在應用更新時再次下載所有這些(大)文件是不公平的。它會阻止用戶再次更新。感謝蘋果另一項令人沮喪的政策。 – Ash

相關問題