当应用程序将项目保存到钥匙串时,macOS 会将该应用程序添加到访问控制列表中,以便您的应用程序稍后可以访问它。如果您尝试从其他应用程序访问该项目,macOS 将显示系统提示,询问用户是否允许访问。这是有记录的here https://developer.apple.com/documentation/security/keychain_services/access_control_lists.
应用程序名称想要使用您存储在的机密信息
钥匙串中的“com.company.appname.key”。要允许此操作,请输入
“登录”钥匙串密码。
How does macOS know which apps have access? Is it by bundle id, signing certificates, location of the app on disk, something else?
在我们的应用程序中,当我们尝试访问一个我们只知道我们创建的应用程序的条目时,我们会意外地看到此提示,因此我试图找出为什么 macOS 认为它是一个不同的应用程序。当我查看“钥匙串访问”中的项目时,它显示“始终允许这些应用程序访问”下的访问控制中列出的应用程序名称,但图标是通用文件,让我相信它认为应用程序的新版本不一样应用程序。请注意,我不再安装旧版本。
你可以看看代码签名文档 https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html.
具体来说,“运输和更新您的产品”部分有这样的内容(强调我的):
当您对产品的新版本进行认证后,请像签署先前版本一样对其进行签名,并使用相同的标识符和相同的指定要求。用户的系统认为您的产品的新版本与以前的版本是相同的程序。例如,钥匙串服务不会区分程序的旧版本和新版本,只要两者都经过签名并且唯一标识符保持不变t.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)