Keychain项目属性键kSecAttrIsInvisible
描述为:
一个键,其值为布尔值,表示项目的可见性。
自iOS 2.0以来,这已在iOS SDK中提供。
我假设这可能会隐藏钥匙串项目出现在macOS系统上,用户可以通过Keychain Access应用程序查看Keychain项目。
我的问题是,如果有的话,在iOS设备上启用此属性键的作用是什么?
我刚刚在Apple dev论坛帖子上发布了这个后续内容:
无论如何要小心:
我最近添加了这个属性来隐藏我的iOS应用程序中的一些项目,当iCloud钥匙串处于活动状态并且可以在Mac上看到时,也因为我们的应用程序的MacOS版本现在已经准备好了。
我们面临着一个严峻的形势,即由于这种模糊和无证的行为,iOS用户无法将他们的购买存储在钥匙串中:
因此,要正确迁移到使用此属性,应该:
将来删除可以使用该属性成功,但在我们测试的任何情况下,前面的步骤只能尝试删除一次。
我在Apple Developer forums上收到了对此的回复:
我假设这可能会隐藏钥匙串项目出现在macOS系统上,用户可以通过Keychain Access应用程序查看Keychain项目。
正确。
我的问题是,如果有的话,在iOS设备上启用此属性键的作用是什么?
不多。鉴于iOS没有通用的方式来查看钥匙串项目,我能想到的唯一特定效果与iCloud Keychain有关。如果该项目通过iCloud Keychain同步到Mac,您可能希望在那里隐藏它。