0

我们有一个单声道应用程序,我们将其签名并捆绑到OSX上的应用程序中。我们的应用程序访问存储密码的钥匙串,使用应用程序名称存储

这工作正常,直到我们执行升级。升级时,我们将 .app 内容替换为升级 zip 文件的(也签名的)内容。

但是,当应用程序之前尝试访问钥匙串时,我们会返回 NULL 来代替我们存储的密码。我们发现:

  • 对升级后的应用程序运行 codesign -vvv 显示签名有效。
  • 如果我们重新启动盒子,应用程序可以正常访问钥匙串
  • 如果应用程序未签名,则升级和钥匙串访问工作正常。

那么,如果我在签名/升级中缺少一个步骤?有没有可以重新启动的服务来解决它?

更新

  • 更新后,检索凭据的钥匙串调用在重新启动后返回“AuthFailed”,我们得到“成功”
4

1 回答 1

0

我们终于设法得到了答案,并且与编码一样,一旦我们完全了解情况,原因就很明显了。

我们的自动升级过程替换了 OSX .app 的内容 .app“文件”只是一个存档/目录,因此它的内容可以通过自动升级就地替换 与签名不匹配的资产将导致签名问题

所以,只需确保 .app 文件的内容与签名版本匹配。我们有一个包含不再使用的旧文件的应用程序版本。由于它没有被删除,因此内容与签名不符。

于 2013-07-24T07:10:09.600 回答