有没有办法检测启动是否来自iCloud备份? (恢复)
我看过here,但没有任何关于它。
他们关于允许备份的规则是非常严格的(多次被拒绝)支持数据库,只有一个用户生成的更改 - 现在我必须将数据备份到其他地方并重新插入从备份恢复。
答案 0 :(得分:2)
https://developer.apple.com/documentation/security/ksecattraccessiblealwaysthisdeviceonly
通过使用“ ThisDeviceOnly”的可访问属性之一,可以将钥匙串项目标记为不备份。
每当钥匙串项丢失但存在用户默认值(或备份的钥匙串项)时,您都可以将标志写入NSUserDefaults和钥匙串(使用kSecAttrAccessibleAlwaysThisDeviceOnly),则必须从备份中将其还原。也要注意安全和不安全的iTunes备份。不安全的备份不应包含任何钥匙串项。
答案 1 :(得分:0)
一种方法是检查文档目录中带有.isExcludedFromBackupKey
的文件是否存在/有效,如果启动时不存在该文件,则创建该文件。
还原备份后,带有该标志的文档目录中的文件将被删除。
var resourceURL = documentFileURL
var resourceValues = URLResourceValues()
resourceValues.isExcludedFromBackup = excludedFromBackup
try resourceURL.setResourceValues(resourceValues)