CloudKit iOS:用户无法删除应用程序数据
Posted
技术标签:
【中文标题】CloudKit iOS:用户无法删除应用程序数据【英文标题】:CloudKit iOS: user can't delete application data 【发布时间】:2019-10-22 15:24:13 【问题描述】:我尝试将 CloudKit 支持添加到我的 ios 应用程序中。我的目标是将数据保存到用户的 privateCloudDatabase 并能够在用户更换手机/重新安装应用程序时恢复它。 一切正常,但用户无法从 iCloud 中删除应用数据(从代码中我可以成功删除)
前提条件:用户设备已启用 iCloud
复制步骤(ios 13,但可以在任何 ios 上复制):
-
从代码中将
CKRecord
保存到用户的privateCloudDatabase
在用户设备上转到设置 > Apple ID(顶部)> iCloud > 管理存储 > 我的应用程序 > 删除数据 > 删除
预期结果:应用程序列表已更新,而我的应用程序不在列表中
实际结果:我的应用还在列表中
以下是我将记录添加到 iCloud 的方法:
let record = CKRecord(recordType: "backup", recordID: CKRecord.ID(recordName: "userName"))
let operation = CKModifyRecordsOperation(recordsToSave: [record], recordIDsToDelete: nil)
operation.savePolicy = .allKeys
operation.modifyRecordsCompletionBlock = savedRecords, deletedRecords, error in
print(error)
CKContainer.default().privateCloudDatabase.add(operation)
我希望用户可以转到“设置”并手动从 iCloud 中删除应用数据。否则,如果用户删除我的应用程序,他将无法永远从 iCloud 中删除这些数据(是的,我尝试删除应用程序然后删除数据 - 结果是一样的)
视频:https://www.youtube.com/watch?v=UGk0hpi8gtA
问题:是错误还是我遗漏了什么?有什么办法可以解决这个问题?
更新:我在 app store 应用程序中发现,它可能使用 CloudKit,如果我安装它 - 它不能永远从我的 iCloud 存储中删除。 https://apps.apple.com/us/app/ulysses/id1225571038
【问题讨论】:
【参考方案1】:我也试过了,应用程序并没有立即从列表中消失,但是如果你重新加载应用程序列表,它就可以工作了。请尝试以下步骤:
-
从列表中删除应用程序。
等一下。
转到 iCloud 设置,然后返回 管理存储,应用程序应该会消失。
如果手动重新加载列表后还是不行,建议向苹果提交bug:feedbackassistant.apple.com
【讨论】:
您是否使用我示例中的代码添加了记录?我问是因为如果我使用“iCloud 文档”(ubiquityContainer)将数据添加到 iCloud,它可以正常工作,用户可以立即删除数据。我试图等待一分钟(甚至等了 2 天),尝试重新启动设备,尝试使用其他设备(从未安装我的应用程序的设备)从 iCloud 中删除数据 - 没有任何帮助,这个应用程序仍在我的 iCloud 列表中.你看过我附上的视频吗?这就是你的意思,除了等待一分钟,对吧?在这里提问之前,我在 feedbackassistant.apple.com 上填写了一个错误,但没有答案。以上是关于CloudKit iOS:用户无法删除应用程序数据的主要内容,如果未能解决你的问题,请参考以下文章
清除/清除 CloudKit 容器的所有用户 iCloud 记录