无需密码解锁OS X钥匙串

7

我正在进行远程/自动化构建[1]我的Xcode项目[2],为了签署我的应用程序,在构建之前添加了这一行。

security unlock-keychain -p keychainpassword

这个方法很好用,可以解锁存储证书的SYSTEM钥匙链,但它会在TeamCity界面上公开构建代理所使用的用户密码。
构建过程正在以已登录的用户身份运行,并是自包含的...是否有一种方式可以在不提供密码的情况下解锁系统/默认钥匙链?
我刚想到一个主意。如果我将证书移动到登录的钥匙链中(而不是系统)?我还需要用密码解锁吗?
这可能吗?或者我应该设置一个无法造成任何损害的用户,只构建而不做其他事情,并公开该用户的密码?
[1] 使用TeamCity,但不相关。
[2] iPhone项目,但同样不相关。

1
如果这对你来说真的很重要,你可以编写一个小应用程序,解锁钥匙串并从只读文件中读取密码,用户可以访问,其他人无法访问。这样密码就不会在进程列表中暴露。 - Jason Coco
2个回答

2

您应该能够使用普通(非管理员)用户进行构建,并使该用户没有密码。然后,您可以自动登录为该用户在您的构建系统上。

另一种选择是将密码存储在环境变量中,但这几乎不会隐藏密码。

如果您有一个没有密码的普通用户,并将证书添加到登录钥匙串中,则应该能够无问题地进行远程/自动/无人值守的构建,包括代码签名。


0

security unlock-keychain 单独运行会提示输入密码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接