检测iOS应用程序是否从iCloud备份恢复

时间:2015-05-18 14:24:27

标签: ios backup icloud

有没有办法检测启动是否来自iCloud备份? (恢复)

我看过here,但没有任何关于它。

他们关于允许备份的规则是非常严格的(多次被拒绝)支持数据库,只有一个用户生成的更改 - 现在我必须将数据备份到其他地方并重新插入从备份恢复。

2 个答案:

答案 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)