我正在尝试为稳定的 iPhone 应用程序设置持续构建/集成。
我有:
- 专用的 Mac Mini。
- 一个名为“build”的用户帐户
- Hudson通过在 /Users/build/Library/LaunchAgents 中放置一个 plist 设置为构建的 LaunchAgent
- 尝试作为以 hudson 身份运行的系统范围的 LaunchDaemon,但随后无法访问构建用户的登录钥匙串。长篇大论,满满的心酸。
- 系统设置为在启动时自动登录“build”,以便 Hudson 开始运行。
最大的问题是代码设计和钥匙串。
我们代表客户的开发人员身份创建代码,因此我们有多个开发人员身份,我们将添加更多。
我想把 Mini 放在一个很黑的房间里,从不看它,但是当你第一次使用开发人员身份构建时,会弹出一个 GUI 对话框,询问你是否要始终允许 codesign 访问开发人员身份。
假设您这样做,该对话框会修改钥匙串访问控制列表 (ACL),以便允许进行协同设计。
您可以通过打开钥匙串访问、展开证书、选择私钥、右键单击、选择获取信息,然后切换到访问控制选项卡来查看此信息。“原始”密钥将仅在其“始终允许”应用程序列表中具有钥匙串访问权限。您在对话框中使用并确认的一个也将具有共同设计。
这个框提供了一种添加应用程序的方法,除了你得到标准的 Finder 文件选择器,它隐藏了 Unix 文件夹。无法导航到 /usr/bin/codedesign。所以手动添加是不可能的!
有谁知道解决这个问题的方法?
我知道使用“安全导入”的 -T 开关的一种方法,但是首先在导入密钥时必须指定 ACL,因此必须丢弃并重新导入 Keychain GUI 中添加的任何密钥。不是很好。