我尝试将CloudKit支持添加到我的iOS应用中。我的目标是将数据保存到用户的privateCloudDatabase并能够在用户更改手机/重新安装应用程序时将其还原。 一切正常,但是用户无法从iCloud删除应用程序数据(从代码中我可以成功删除它)
前提条件:用户设备已启用iCloud
复制步骤(ios 13,但可以在任何ios上复制):
CKRecord
保存到用户的privateCloudDatabase 预期结果:应用程序列表已更新,而我的应用程序不在列表中
实际结果:我的应用仍在列表中
这是我向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
问题:是错误还是我错过了一些东西?有解决此问题的解决方法吗?
更新:我在应用商店应用程序中发现了一个可能使用CloudKit的应用程序,如果我安装了它-无法永远将其从iCloud存储中删除。 https://apps.apple.com/us/app/ulysses/id1225571038
答案 0 :(得分:0)
我也尝试过此操作,但该应用程序并不会立即从列表中消失,但是如果您重新加载应用程序列表,它就可以工作。请尝试以下步骤:
如果手动重新加载列表后仍然无法使用,我建议向Apple提交错误:feedbackassistant.apple.com