iCloud的无处不在的容器不清理应用程序删除?
我将Core Data的iCloud添加到app store中已经存在的应用中,因此我需要testing升级scheme。 但是,当我从我的设备中删除我的应用程序,并从Xcode重新安装它,我已经注意到,设备上我的无处不在的容器文件夹里面的一切都是持久的! 这是令人难以置信的烦恼,因为当我试图从我指定的事务日志目录中上传文件时,iCloud会变得困惑,并且经常超时。 我最终需要指定一个新的事务日志位置,以使其再次运行,这对我的testing来说显然不会起作用。
以下是我收到的错误:
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)
安全保存失败的文件,错误:错误域= NSCocoaErrorDomain代码= 512“file upload超时。 UserInfo = 0x1e5b6b10 {NSLocalizedDescription =file upload超时。}
有谁知道如何清除应用程序安装之间的无处不在的容器? 即使从应用程序设置中删除无处不在的容器并重新发布它也不能解决这个问题。 理论上,客户只需要删除应用程序,然后删除他们的iCloud文件就可以解决这个问题。 这个问题确实令人沮丧,以确定是什么原因的问题 – 任何build议表示赞赏!
头撞得厉害之后,我才明白这一点。 有人向我提到,如果您访问developer.icloud.com并使用您的iCloud帐户login,就可以查看您的设备的所有iCloud数据。 用这个做了一些testing,我发现iCloud服务器上的数据在我告诉它从我的设备上删除后立即被删除。 不过,即使我删除了我的应用程序,我在我的设备上的无处不在容器中创build的所有文件夹和文件仍然保留。
我的工作是检查设置我的应用程序第一次使用iCloud时,看看我的目录是否已经在无处不在的容器。 如果他们是,那么我手动删除目录和其中的所有文件与下面的代码:
[fileManager removeItemAtPath:[[fileManager URLForUbiquityContainerIdentifier:nil] path] error:&error];
这就是iCloud应该如何工作。 在一台设备上删除应用程序不会自动删除iCloud数据。 如果应用程序仍安装在使用相同帐户的其他设备上,则仍然可以使用这些数据。
如果您想在testing过程中清除iCloud数据,请转到设置 – > iCloud,深入到您的应用程序,并删除数据。
- CoreData中的自引用数据对象
- 将自定义类保存到Coredata中
- CoreData:警告:无法为实体“Readings”加载名为“WEEReadings”的类。 找不到类,使用默认的NSManagedObject来代替
- NSPredicate的内存中和数据库内部评估给出了不同的结果
- 核心数据当插入〜5000行时,sqlite-wal文件会获得MASSIVE(> 7GB)
- 最有效的使用NSPredicate OR语句进行search的方法
- 保存更新的Core Data实例
- 如何在iOS 9.0 Beta中实现新的Core Data模型构build器的“独特”属性
- 优先使用属性访问器或KVC样式来访问Core Data属性