如何防止钥匙串项目不会添加到备份中?以及加密备份? 当钥匙串(SecItem)项配置如下所示时,可以将该钥匙串项备份并恢复到另一台设备。
let query = [
String(kSecClass) : kSecClassGenericPassword,
String(kSecAttrService) : "SecAttrService",
String(kSecAttrAccount) : "SecAttrAccount",
String(kSecValueData) : mobileId,
]
那么,如何防止钥匙串项不被备份呢?
使用“ThisDeviceOnly”可访问性常量,最好是 kSecAttrAccessibleWhenUnlockedThisDeviceOnly :
防止钥匙串无法备份使用
pod 'KeychainSwift', '~> 20.0'
让钥匙串 = KeychainSwift() keychain.set("Hello world", forKey: "key 1", withAccess: .accessibleWhenUnlockedThisDeviceOnly)
注:
只有当用户解锁设备时才能访问钥匙串项中的数据。
建议仅当应用程序位于前台时才需要访问的项目。具有此属性的项目不会迁移到新设备。因此,从不同设备的备份恢复后,这些项目将不存在。