2013-01-22 76 views
12

我正在將iCloud與Core Data一起添加到應用商店中已存在的應用中,因此我需要測試升級方案。但是,當我從我的設備上刪除我的應用程序並從Xcode重新安裝它時,我注意到設備上無處不在的容器文件夾中的所有內容都被保留了!這是令人難以置信的煩惱,因爲iCloud在嘗試從我指定並經常超時的事務日誌目錄上載文件時變得困惑。我最終需要指定一個新的事務日誌位置以使其再次運行,這對我的測試顯然將來不起作用。iCloud ubiquity容器沒有在應用程序刪除清理?

以下是錯誤我收到:

PFUbiquitySafeSaveFile waitForFileToUpload:: CoreData: Ubiquity: (0) permanentLocation: : /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~appnamegoeshere/DatabaseTransactionLogs/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20/iCloudData/8u0BfiCwOkHHa~o8hF4bunW~zmdS_C8om5efuugxRaA=/receipt.0.cdt safeLocation: : /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~appnamegoeshere/DatabaseTransactionLogs/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20/iCloudData/8u0BfiCwOkHHa~o8hF4bunW~zmdS_C8om5efuugxRaA=/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20.0.cdt currentLocation: : /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~appnamegoeshere/DatabaseTransactionLogs/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20/iCloudData/8u0BfiCwOkHHa~o8hF4bunW~zmdS_C8om5efuugxRaA=/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20.0.cdt

kv: (null)

Safe save failed for file, error: Error Domain=NSCocoaErrorDomain Code=512 "The file upload timed out." UserInfo=0x1e5b6b10 {NSLocalizedDescription=The file upload timed out.}

有誰知道如何清除出無處不在容器之間應用安裝?即使從應用程序設置中刪除無處不在容器並重新發布它也不能解決此問題。理論上,客戶只需刪除應用程序,然後刪除其iCloud文件即可解決此問題。這個問題真的令人沮喪,以確定問題的原因是什麼 - 任何建議表示讚賞!

回答

7

經過多次衝擊之後,我終於明白了這一點。有人向我提到,如果您訪問developer.icloud.com並使用您的iCloud帳戶登錄,就可以查看您設備的所有iCloud數據。用這個做了一些測試,我發現當我告訴它從我的設備上刪除時,iCloud服務器上的數據立即被刪除。然而,即使我刪除了我的應用程序,我在我的設備上的無處不在容器中創建的所有文件夾和文件仍然保留。

我的工作是在第一次設置我的應用程序以使用iCloud時查看我的目錄是否已經在無處不在的容器中。如果他們是,然後我手動刪除目錄和其中的所有文件用以下代碼:

[fileManager removeItemAtPath:[[fileManager URLForUbiquityContainerIdentifier:nil] path] error:&error]; 
+0

您是如何確定是否第一次設置iCloud的?保存一個NSUserDefaults?第一次安裝時如何清理該文件夾? – Austin

+0

我檢查了我的無處不在容器中的文件夾(如數據庫文件)是否存在。 – lehn0058

+0

你是如何刪除該文件夾的?我試圖用'[[NSFileManager defaultManager] removeItemAtPath:path error:&error]'刪除;'但我得到一個錯誤 – kroger

2

這就是iCloud應該如何工作。在一臺設備上刪除應用程序不會自動刪除iCloud數據。如果該應用程序仍安裝在使用相同帳戶的其他設備上,則仍然可以使用該數據。

如果您想在測試過程中清除iCloud數據,請轉到設置 - > iCloud,深入到您的應用程序並刪除數據。

+1

是的 - 這正是我已經清除數據。它仍然在我的設備上留下了無處不在的文件夾,但這是導致問題的原因。我甚至修改了我的應用程序,以檢查該文件夾是否仍然存在以確保我沒有發瘋,並且在我從設置中刪除iCloud數據後,它始終存在。 – lehn0058

+0

只要有無處不在的文件夾存在 - empty-- *應該很好。如果不適合你,最好更新你的問題,更詳細地說明究竟出了什麼問題。 –

+2

它不僅僅是無處不在的容器。它裏面的目錄仍然存在。我認爲這是導致iCloud感到困惑的原因,因爲它們存在於本地無處不在的容器中,但不存在於iCloud服務器上。當我發出添加持久性商店協調員的請求時,這最終導致超時。我會做一些更多的測試,以便在刪除iCloud設置後,獲取設備上仍然存在的具體細節。 – lehn0058

相關問題