在app删除时没有清理iCloud ubiquity容器?

leh*_*058 12 core-data ios icloud

我将带有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/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 currentLocation:/私营/无功/移动/图书馆/移动文件/ XXXXXXXXXX〜appnamegoeshere/DatabaseTransactionLogs/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20/iCloudData/8u0BfiCwOkHHa〜o8hF4bunW〜zmdS_C8om5efuugxRaA =/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20.0.cdt

kv :( null)

文件的安全保存失败,错误:错误域= NSCocoaErrorDomain代码= 512"文件上载超时." UserInfo = 0x1e5b6b10 {NSLocalizedDescription =文件上传超时.}

有谁知道如何在app安装之间清除无处不在的容器?即使从应用程序设置中删除ubiquity容器并重新发布它也无法解决此问题.理论上的客户只需删除应用程序然后删除它们的iCloud文件就能解决这个问题.这个问题确定问题的原因是非常令人沮丧的 - 任何建议都表示赞赏!

leh*_*058 7

经过多次的冲击,我能够想到这一点.有人向我提到,如果您访问developer.icloud.com并使用您的iCloud帐户登录,则可以查看设备的所有iCloud数据.用这个做了一些测试,当我告诉它从我的设备中删除时,我能够看到iCloud服务器上的数据被立即删除.但是,即使我删除了我的应用程序,我在设备上的ubiquity容器中创建的所有文件夹和文件仍然存在.

我的工作是在第一次设置我的应用程序时检查是否使用iCloud,看看我的目录是否已经在普遍容器中.如果是,那么我使用以下代码手动删除目录及其中的所有文件:

 [fileManager removeItemAtPath:[[fileManager URLForUbiquityContainerIdentifier:nil] path] error:&error];
Run Code Online (Sandbox Code Playgroud)