12

我正在将带有 Core Data 的 iCloud 添加到应用商店中已经存在的应用中,因此我需要测试升级方案。但是,当我从设备中删除我的应用程序并从 Xcode 重新安装它时,我注意到设备上我的 ubiquity 容器文件夹中的所有内容都被保留了!这非常烦人,因为 iCloud 在尝试从我指定的事务日志目录上传文件时最终会感到困惑并且经常超时。我最终需要指定一个新的事务日志位置才能让它再次工作,这显然在未来对我的测试不起作用。

以下是我收到的错误:

PFUbiquitySafeSaveFile waitForFileToUpload:: CoreData: Ubiquity: (0) PermanentLocation: : /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~appnamegoeshere/DatabaseTransactionLogs/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20/iCloudData/8u0BfiCw~OkHHa~o8hF4bunW zmdS_C8om5efuugxRaA=/receipt.0.cdt safeLocation: : /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~appnamegoeshere/DatabaseTransactionLogs/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20/iCloudData/8u0BfiCwOkHA/_o8hF4efugx~RazHA/_o8hF4efugx~zRamdC=C 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

千伏:(空)

文件安全保存失败,错误:Error Domain=NSCocoaErrorDomain Code=512“文件上传超时。” UserInfo=0x1e5b6b10 {NSLocalizedDescription=文件上传超时。}

有谁知道如何在应用程序安装之间清除一个无处不在的容器?即使从应用程序设置中删除 ubiquity 容器并重新发布它也不能解决此问题。理论上,客户只需删除应用程序然后删除其 iCloud 文件即可解决此问题。这个问题真的很令人沮丧,以确定问题的原因是什么 - 任何建议都值得赞赏!

4

2 回答 2

7

经过多次头部撞击,我能够弄清楚这一点。有人向我提到,如果您访问 developer.icloud.com 并使用您的 iCloud 帐户登录,您可以查看设备的所有 iCloud 数据。对此进行了一些测试,当我告诉它从我的设备中删除时,我能够看到 iCloud 服务器上的数据立即被删除。但是,即使我删除了我的应用程序,我在设备上的 ubiquity 容器中创建的所有文件夹和文件都保留了下来。

我的工作是检查何时设置我的应用程序以首次使用 iCloud,并查看我的目录是否已经在 ubiquity 容器中。如果是,那么我使用以下代码手动删除目录和其中的所有文件:

 [fileManager removeItemAtPath:[[fileManager URLForUbiquityContainerIdentifier:nil] path] error:&error];
于 2013-02-10T19:23:11.300 回答
2

这就是 iCloud 的工作方式。删除一台设备上的应用程序不会自动删除 iCloud 数据。如果该应用程序仍然安装在使用相同帐户的其他设备上,他们仍然可以使用数据。

如果您想在测试期间清除 iCloud 数据,请转到设置 --> iCloud,深入到您的应用程序,然后删除数据。

于 2013-01-23T22:37:12.523 回答