我正在将iCloud与Core Data一起添加到应用商店中已存在的应用中,因此我需要测试升级方案。但是,当我从我的设备中删除我的应用程序并从Xcode重新安装它时,我注意到设备上我的ubiquity容器文件夹中的所有内容都是持久的!这非常令人讨厌,因为当我尝试从我指定的事务日志目录上传文件时iCloud最终会感到困惑,并且经常超时。我最终需要指定一个新的事务日志位置才能让它再次工作,这对我的测试显然不会起作用。
以下是我收到的错误:
PFUbiquitySafeSaveFile waitForFileToUpload :: CoreData: 无处不在:(0)permanentLocation: :/ private / var / mobile / Library / Mobile 文档/ XXXXXXXXXX〜appnamegoeshere / DatabaseTransactionLogs / mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20 / iCloudData / 8u0BfiCwOkHHa〜o8hF4bunW〜zmdS_C8om5efuugxRaA = / receipt.0.cdt safeLocation :: /私营/无功/移动/图书馆/手机 文档/ XXXXXXXXXX〜appnamegoeshere / DatabaseTransactionLogs / mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20 / iCloudData / 8u0BfiCwOkHHa〜o8hF4bunW〜zmdS_C8om5efuugxRaA = / mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20.0.cdt 当前位置: : /私营/无功/移动/图书馆/手机 文档/ XXXXXXXXXX〜appnamegoeshere / DatabaseTransactionLogs / mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20 / iCloudData / 8u0BfiCwOkHHa〜o8hF4bunW〜zmdS_C8om5efuugxRaA = / mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20.0.cdt
kv:(null)
安全保存文件失败,错误:错误Domain = NSCocoaErrorDomain 代码= 512“文件上传超时。”的UserInfo = 0x1e5b6b10 {NSLocalizedDescription =文件上传已超时。}
有没有人知道如何在app安装之间清除无处不在的容器?即使从应用程序设置中删除ubiquity容器并重新发布它也无法解决此问题。理论上的客户只需删除应用程序然后删除它们的iCloud文件就可以解决这个问题。这个问题确定问题的原因是非常令人沮丧的 - 任何建议都值得赞赏!
答案 0 :(得分:7)
我的工作是在第一次设置我的应用程序时检查是否使用iCloud,看看我的目录是否已经在普遍容器中。如果是,那么我使用以下代码手动删除目录及其中的所有文件:
[fileManager removeItemAtPath:[[fileManager URLForUbiquityContainerIdentifier:nil] path] error:&error];
答案 1 :(得分:2)
这就是iCloud的工作方式。在一台设备上删除应用程序不会自动删除iCloud数据。如果应用程序仍安装在使用同一帐户的其他设备上,则他们仍可以使用该数据。
如果您想在测试期间清除iCloud数据,请转到设置 - > iCloud,深入到您的应用程序,并删除数据。