检测是否从iCloud备份还原iOS应用程序

检测是否从iCloud备份还原iOS应用程序,ios,backup,icloud,Ios,Backup,Icloud,有没有办法检测发射是否来自iCloud备份?(恢复) 我已经看过了,但什么也没有 他们关于允许备份什么的规则非常严格(多次被拒绝)备份数据库,其中只有一个用户生成的更改-现在我必须将数据备份到其他地方,并在从备份还原时重新插入数据。 通过使用带有“ThisDeviceOnly”的可访问属性之一,可以将钥匙链项目标记为不备份 您可以将标志写入NSUserDefaults和Keychain(仅使用KSECattraccessibleAllwaysThisDeviceOnly),只要缺少Keychai

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

我已经看过了,但什么也没有

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

通过使用带有“ThisDeviceOnly”的可访问属性之一,可以将钥匙链项目标记为不备份


您可以将标志写入NSUserDefaults和Keychain(仅使用KSECattraccessibleAllwaysThisDeviceOnly),只要缺少Keychain项,但存在用户默认值(或备份的Keychain项),则必须从备份中恢复该项。也要注意安全和不安全的iTunes备份。不安全的备份不应包含任何密钥链项。

一种方法是检查文档目录中带有
.isExcludedFromBackupKey
的文件是否存在/有效,如果启动时不存在该文件,则创建该文件

恢复备份时,文档目录中具有该标志的文件将被删除

var resourceURL=documentFileURL
var resourceValues=URLResourceValues()
resourceValues.isExcludedFromBackup=从备份中排除
尝试resourceURL.setResourceValues(resourceValues)

你有没有发现这是否可能?没有,我从来没有找到检测的方法。这是如何回答这个问题的?问题是“检测iOS应用程序是否从iCloud备份中恢复”。使用上述API在keychain(或keychain和usersefaults的组合)中存储备份和未备份的值。如果启动时只存在备份值,则应用程序已从备份中恢复。哦,这太棒了,感谢您提供的解决方案。这就是我一直在寻找的。