我正在尝试为稳定的 iPhone 应用程序设置持续构建/集成。
我有:
- 专用 Mac Mini。
- 名为“build”的用户帐户
- Hudson通过在/Users/build/Library/LaunchAgents 中删除一个 plist,设置为构建的 LaunchAgent
- 尝试作为系统范围的 LaunchDaemon 作为 hudson 运行,但随后无法访问构建用户的登录钥匙串(keychain)。说来话长,充满心痛。
- 系统设置为启动时自动登录“build”,这样Hudson就开始运行了。
最大的问题是代码签名和钥匙串(keychain)。
我们代表客户的开发者身份创建代码,因此我们有多个开发者身份,并且我们将添加更多。
我想把 Mini 放在一个很暗的房间里,永远不要看它,但是当你第一次使用开发者身份构建时,会弹出一个 GUI 对话框,询问你是否要始终允许 codesign 访问开发者身份。
假设您这样做,该对话框会修改钥匙串(keychain)访问控制列表 (ACL),以便允许进行协同设计。
您可以通过打开“钥匙串(keychain)访问”、展开证书、选择私钥、右键单击、选择“获取信息”,然后切换到“访问控制”选项卡来查看此信息。 “原始” key 只会在其“始终允许”应用程序列表中具有钥匙串(keychain)访问权限。您已经使用并在对话框中确认的一个也将具有代码设计。
此框提供了一种添加应用程序的方法,但您会获得标准的 Finder 文件选择器,它会隐藏 Unix 文件夹。无法导航到/usr/bin/codesign。所以手动添加是不可能的!
有人知道解决这个问题的方法吗?
I'm aware of one method使用“安全导入”的 -T 开关,但随后您必须在首先导入 key 时指定 ACL,因此必须丢弃并重新导入钥匙串(keychain) GUI 中添加的任何 key 。不太好。
最佳答案
通常情况下,Keychain 的“获取信息”对话框呈现给您的文件系统的“清理”版本不允许您访问隐藏的/usr/bin 目录,但我找到了解决此问题的方法。
- 获取正常的 Finder 窗口以显示所有文件。如果您不知道如何执行此操作,check out this article .
- 在普通的 Finder 窗口中,导航到/usr/bin
- 将 bin 拖到边栏中的“位置”区域。现在 bin 是您可以从任何地方访问的快捷方式。
- 在钥匙串(keychain)的“获取信息”->“访问控制” Pane 中,单击“+”按钮打开查找应用程序对话框。
- 单击此边栏上“位置”下方的垃圾箱。
- 导航并选择协同设计。
- 单击“保存更改”按钮。
关于iphone - 在没有钥匙串(keychain)的情况下将代码设计添加到私钥 ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4764499/