2013-01-22 38 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

相关问题