2011-01-21 135 views
14

我正在尝试为稳定的iPhone应用程序建立连续的构建/集成。添加密码到没有钥匙串的私钥ACL

我:

  • 专用的Mac Mini。
  • 命名的用户帐户“打造”
  • Hudson设置为构建一个LaunchAgent,在/用户/建设/库/尝试作为一个全系统的LaunchDaemon运行,如Hudson LaunchAgents
    • 丢弃的plist ,但之后无法访问构建用户的登录钥匙串。长话短说,充满了心痛。
  • 系统设置为在启动时自动登录“build”,以便Hudson开始运行。

最大的问题是编码签名和钥匙串。

我们代表我们客户的开发人员身份创建代码,因此我们有几个开发人员身份,我们将添加更多。

我想把Mini放在一个黑暗的房间里,从来不看它,但是第一次用开发人员身份构建时,会弹出一个GUI对话框,询问您是否要始终允许使用codesign来访问开发人员标识。

假设您这样做,该对话框会修改钥匙串访问控制列表(ACL),以便允许使用密码。

您可以通过打开钥匙串访问,展开证书,选择私钥,右键单击,选择获取信息,然后切换到访问控制选项卡来查看此信息。 “处女”钥匙在其“始终允许”应用程序列表中只有钥匙串存取。在对话框中使用并确认的一个也会有编码。

这个盒子提供了一种添加应用程序的方法,除非你得到隐藏Unix文件夹的标准Finder文件选择器。没有办法导航到/ usr/bin/codesign。所以手动添加是不可能的!

有没有人知道解决这个问题的方法?

I'm aware of one method使用“安全导入”的-T开关,但是当您首先导入密钥时必须指定ACL,因此钥匙串GUI中添加的任何密钥都必须被丢弃并重新导入。不完全非常好。

+0

你有没有找到解决方案?有同样的问题。 – scootklein 2011-03-16 01:16:05

+0

在safari中,“vnc://miniName.local”是一种方式,您可以在每个项目中远程使用一次机器。 Scootklein的解答与applescript看起来应该工作。 – 2011-03-22 12:50:36

回答

18

的钥匙扣的获取信息对话框礼物给你不会让你访问隐藏/ usr/bin目录的文件系统通常是“洁净”的版本,但我发现解决的办法。

  1. 获取正常的Finder窗口以显示所有文件。如果你不知道如何做到这一点,check out this article
  2. 在正常的Finder窗口中,导航到/ usr/bin
  3. 将bin拖动到边栏中的Places区域。现在,bin是您可以从任何地方访问的快捷方式。
  4. 从钥匙串的获取信息 - >访问控制窗格中,单击“+”按钮打开查找应用程序对话框。
  5. 单击此侧边栏上位置下的垃圾箱。
  6. 导航至并选择codesign。
  7. 单击保存更改按钮。
4

我找到了一个解决方案,在安全或certtool没有运气以添加ACL权限后,点击“Always Allow”按钮。

#!/usr/bin/osascript 
tell application "System Events" 
    tell window 1 of process "SecurityAgent" 
    click button "Always Allow" of group 1 
    end tell 
end tell 
3

好吧,这几乎花了我半天的时间才弄清楚,但我现在有它的工作。我正在关注这个article

文章显示添加这样的证书与-A选项,但这不适合我。

security import "ADistribution.p12" -k appledev -f pkcs12 -A -P "" 

这个问题提到了-T选项,它为我工作。

security import "Distribution.p12" -k appledev -f pkcs12 -P "" -T /usr/bin/codesign 
5

刚刚注册说非常感谢大卫博克。伟大的解决方法,帮助了我很多。 但有一个更好的方法来做到这一点。

Open File Dialog press 'Cmd' + 'Shift' + '.' 

该组合应该切换文件系统上隐藏项目的可见性。 如果组合无效,请尝试将演示模式更改为“列表”或“网格”并再次尝试。

谢谢,祝你好运!