将codeign添加到没有Keychain的私钥ACL

Dav*_*ike 14 iphone continuous-integration keychain codesign ios

我正在尝试为稳定的iPhone应用程序设置持续构建/集成.

我有:

  • 专用的Mac Mini.
  • 名为"build"的用户帐户
  • 通过在/ Users/build/Library/LaunchAgent中删除一个plist,Hudson设置为LaunchAgent用于构建
    • 尝试作为hudson运行的系统范围的LaunchDaemon,但后来无法访问构建用户的登录密钥链.漫长的故事,充满了心痛.
  • 系统设置为在启动时自动登录"build",以便Hudson开始运行.

最大的问题是代码签名和钥匙串.

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

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

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

您可以通过打开Keychain Access,扩展证书,选择私钥,右键单击,选择"获取信息",然后切换到"访问控制"选项卡来查看此信息."处女"密钥只在其"始终允许"应用程序列表中具有Keychain Access.您在对话框中使用和确认的一个也将具有编码.

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

有没有人知道这方面的方法?

我知道有一种方法使用"安全导入"的-T开关,但是当你首先导入密钥时必须指定ACL,因此在Keychain GUI中添加的任何键都必须被抛出并重新导入.不是很好.

Dav*_*ike 19

通常,Keychain的"获取信息"对话框提供给您的文件系统的"已清理"版本将不允许您访问隐藏的/ usr/bin目录,但我找到了解决此问题的方法.

  1. 获取正常的Finder窗口以显示所有文件.如果您不知道如何执行此操作,请查看此文章.
  2. 在普通的Finder窗口中,导航到/ usr/bin
  3. 将bin拖到侧栏中的"位置"区域.现在bin是您可以从任何地方访问的快捷方式.
  4. 在Keychain的"获取信息" - >"访问控制"窗格中,单击"+"按钮以打开"查找应用程序"对话框.
  5. 单击此侧栏上"位置"下方的bin.
  6. 导航到并选择codesign.
  7. 单击"保存更改"按钮.


小智 6

刚刚注册,非常感谢,David Boike.伟大的解决方法,帮助了我很多.但是有一种更好的方法可以做到这一点.

Open File Dialog press 'Cmd' + 'Shift' + '.'
Run Code Online (Sandbox Code Playgroud)

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

谢谢,祝你好运!