2011-12-23 49 views
4

我的應用程序最近被拒絕從應用程序商店中存儲數據到Documents目錄中。我把它移到了那裏,因爲隨着最新的變化,db現在必須是可寫的 - 它不再是隻讀的。應用程序被拒絕在Documents目錄中存儲數據庫

在研究解決方案時,我讀過它實際上最好使用NSLibraryDirectory。這是否如此,更重要的是,這是否會解決蘋果的擔憂?他們的抱怨是,該應用程序允許用戶下載大量內容(除非您計算數據庫,否則不會讓用戶下載任何內容),並且在「錯誤位置」存儲「太多數據」。數據是8 MB,但最大可能增長到10或12 MB。

+0

「會解決蘋果的擔憂嗎?「 - 我想只有蘋果能夠回答這個問題 – 2011-12-23 04:08:04

+0

Yah,我希望也許有人遇到同樣的問題 – 2011-12-23 04:13:00

回答

6

其實它是因爲iCloud。

使用iCloud,應用程序的文檔目錄同步到雲和其他設備,因此Apple希望開發人員只將這些數據存儲在他們想要與iCloud同步的文檔目錄中。

我開始認識這種形式,他是我在Apple California工作的朋友之一,我不確定這些材料是否在Apple的文檔上。

1

我遇到了這個問題,我更新了一個應用程序,我在另一週開發了一套應用程序。有趣的是,七個應用程序中只有五個(完全相同的代碼庫)被拒絕。

我相信在我的情況下,問題是從.app包中複製資產到〜/ Documents。

我第一次嘗試遵守他們的新存儲準則是對我正在複製到〜/ Documents中的文件實施do not backup切換。 沒有處理那,所以我不得不改變我的實現,根本不復制數據。這些應用程序得到了及時批准。

您的實現可能不同,但根據我的經驗,Apple不再喜歡將應用程序包中的東西複製到〜/ Documents中,因爲它可能會不必要地複製數據(在他們的視圖中)。

他們建議複製到〜/緩存(或任何它),但這可以在低存儲情況下被清除,並且可能不適合您的情況。

希望有所幫助。

1

我一年前寫的產品使用CoreData(帶有SQLite數據存儲)。這個數據庫文件存儲在〜/ Library/Application Support //中。這被蘋果公司批准沒有問題。

「Application Support」在〜/ Library中不存在,所以您需要創建它。

由於多種原因,文檔不是存放數據庫文件的好地方。蘋果有他們的理由,因爲他們拒絕了你的應用。另一個原因是用戶可以通過iTunes訪問文檔目錄(通過iTunes),除非用戶刪除數據庫文件對應用程序的運行沒有什麼大不了,最好是將它放在無法使用它的地方直接和/或無意中。

+2

Documents目錄只能通過iTunes訪問,如果你的應用在info.plist中將UIFileSharingEnabled設置爲YES, ? – Brynjar 2013-03-09 13:52:51

+0

是的,真的,謝謝你的澄清。如果你沒有啓用它,那麼它確實是無法訪問的。我從我工作的最近產品的角度思考。 – gschandler 2013-03-10 20:16:13

0

,您仍然可以把這些文件的文件夾,你就必須給他們,讓文件系統不知道把它們備份到iCloud的

This屬性是如何做一個很好的例子所以在不同的iOS版本

相關問題