2012-03-23 65 views
2

與許多開發人員一樣,我的iOS應用剛剛被拒絕,因爲有可下載內容被備份到iCloud。我已經爲這個問題尋找了明確的答案,但一直沒能找到答案。iOS文件存儲:未備份的解決方案

蘋果公司說,你應該實現一個「不備份」屬性的文件,但是,他們也狀態(https://developer.apple.com/library/ios/#qa/qa1719/_index.html):

新的「不備份」屬性將只安裝iOS 5.0中使用.1或更高版本。在iOS 5.0及更早版本中,應用程序需要將其數據存儲在/ Library/Caches中以避免其備份。由於此屬性在舊系統上被忽略,因此您需要確保您的應用符合您的應用支持的所有iOS版本的iOS數據存儲指南。

我的應用支持iOS 4.0及更高版本。這是否意味着如果我想維持對iOS 4.0-5.0的支持,我別無選擇,只能將所有內容放入Caches文件夾中?或者,我可以添加「不備份」屬性並將文件保存在/ Documents中嗎?如果我必須將內容保留在Caches文件夾中,是否可以防止在低存儲情況下清除這些文件?最後,是否有開發人員將文件放在Caches文件夾中,並知道它們被清除的頻率?

任何意見或幫助將不勝感激。非常感謝!

+0

我添加了不備份標誌,但最終使得整個文檔文件夾不會被備份。這仍然是可接受的用戶不生成任何其他文件? – user1287635 2012-03-23 17:47:27

+2

我的回答是好的? – 2012-04-27 13:00:50

回答

0

我認爲你可以找到這樣類似的問題:

What is suitable location for creating sqlite file?

,並按照我的想法,最好是存放在新的目錄,而不是文件目錄庫文件..

+0

緩存目錄一直被刪除...如果要永久存儲文件而不將其移動到iCloud中,則必須將其保存在文檔中並將其標記爲不備份。不可能。這是最好的做法https://developer.apple.com/library/ios/#qa/qa1719/_index.html – 2012-03-23 06:55:09

+0

如果我支持iOS的早期版本,我的應用程序仍會被批准嗎?或者我應該將最低限度提高到5.0 0.1? – user1287635 2012-03-23 06:56:53

0

無說的不對。我用這種方式解決了同樣的問題。我將我的數據庫和目錄映像保存在Documents/.. flagsons目錄中,因爲不像Apple建議的那樣進行備份。這樣,對於更新到5.x或更高的設備,文件不會備份到iCloud;對於其他人而言,由於不支持iCloud,所以沒有變化。

這是一個最佳實踐,因爲不涉及用戶的文件我們不在iCloud中進行備份。您不想重新下載的所有其他文件必須保存在文檔中,將其標記爲不備份。如果將其保存在Caches文件夾中,那麼當您關閉應用程序時,這些文件會在短時間內被刪除,並且在您再次打開時必須重新登陸。

+0

iOS 5.0.0支持iCloud,那麼如果我支持早期版本,應用程序仍然會被批准嗎? – user1287635 2012-03-23 06:58:29

+1

當然,我支持4.0和你一樣。 – 2012-03-23 07:00:25

+1

對於iOS版本,請不要更改任何內容,因爲這些文件不是iCloud中的存儲空間,您可以提供支持。 – 2012-03-23 07:02:32

1

關注區域是iOS 5.0,它支持iCloud,但不識別「不備份」屬性。在這種情況下,文檔目錄中的應用程序的所有數據都可能會備份到iCloud。對於低於5.x的iOS版本:

  • iCloud備份無效。
  • 「不備份」標誌不相關。編譯期間不會產生任何警告。

因此,可以將數據保存在文檔目錄中,對於所有版本,將「不備份」標誌適當地添加到內容(文件/文件夾)中。問題僅限於5.0版本。