【发布时间】:2011-01-21 22:29:14
【问题描述】:
我正在尝试为稳定的 iPhone 应用设置持续构建/集成。
我有:
- 专用的 Mac Mini。
- 名为“build”的用户帐户
-
Hudson 设置为构建的 LaunchAgent,通过在 /Users/build/Library/LaunchAgents 中放置一个 plist
- 尝试作为系统范围的 LaunchDaemon 作为 hudson 运行,但随后无法访问构建用户的登录钥匙串。长篇大论,充满心痛。
- 系统设置为在启动时自动登录“build”,以便 Hudson 开始运行。
最大的问题是代码设计和钥匙串。
我们代表客户的开发人员身份创建代码,因此我们有多个开发人员身份,我们将添加更多。
我想把 Mini 放在一个很黑的房间里,从不看它,但是当你第一次使用开发者身份构建时,会弹出一个 GUI 对话框,询问你是否要始终允许 codesign 访问开发者身份。
假设您这样做了,该对话框会修改钥匙串访问控制列表 (ACL),以便允许协同设计。
您可以通过打开钥匙串访问,展开证书,选择私钥,右键单击,选择获取信息,然后切换到访问控制选项卡来查看此内容。 “原始”密钥将仅在其“始终允许”应用程序列表中具有钥匙串访问权限。您在对话框中使用并确认的一个也将具有共同设计。
此框提供了一种添加应用程序的方法,但您获得了标准的 Finder 文件选择器,它隐藏了 Unix 文件夹。无法导航到 /usr/bin/codedesign。所以无法手动添加!
有人知道解决这个问题的方法吗?
I'm aware of one method 使用“安全导入”的 -T 开关,但是您必须在首先导入密钥时指定 ACL,因此必须丢弃并重新导入 Keychain GUI 中添加的任何密钥。不是很好。
【问题讨论】:
-
您找到解决方案了吗?有同样的问题。
-
当您说“无法导航到 /usr/bin/codesign”时,您的意思是什么? /usr/bin/codesign 只是一个程序,如果你需要在 finder 中打开 /usr/bin 使用 "open /usr/bin"
-
在 safari 中,“vnc://miniName.local”是一种方式,您可以在每个项目中远程使用机器一次。 Scootklein 的 applescript 解决方案看起来应该可行。
-
不,在访问控制选项卡上,密钥的获取信息对话框没有手动输入“/usr/bin/codesign”的方法 - 您必须单击加号按钮,它会为您提供从 Macintosh HD 的根目录显示没有隐藏条目(如 /usr)的文件系统的“Finder 清理”视图。然而,验证这一点让我找到了另一个解决方案......
-
我发现绕过这些文件对话框限制的一个技巧是将文件夹 (/usr/bin) 放入 Places 侧边栏中,然后您可以从对话框中选择它(除非它是非标准文件对话框)
标签: iphone ios continuous-integration keychain codesign