我正在尝试为稳定的iPhone应用程序设置持续构建/集成。
我有:
最大的问题是代码签名和钥匙串。
我们代表客户的开发者身份创建代码,因此我们有多个开发人员身份,我们将添加更多。
我想将Mini放在一个黑暗的房间里,从不看它,但是第一次使用开发者身份进行构建时,会弹出一个GUI对话框,询问您是否要始终允许codesign访问开发者身份。
假设您这样做,该对话框会修改钥匙串访问控制列表(ACL),以便允许使用代码签名。
您可以通过打开Keychain Access,扩展证书,选择私钥,右键单击,选择Get Info,然后切换到Access Control选项卡来查看。 “处女”密钥只在其“始终允许”应用程序列表中具有Keychain Access。您在对话框中使用和确认的一个也将具有编码。
此框提供了一种添加应用程序的方法,除了您获得隐藏Unix文件夹的标准Finder文件选择器。没有办法导航到/ usr / bin / codesign。所以手动添加是不可能的!
有没有人知道解决这个问题的方法?
I'm aware of one method使用“安全导入”的-T开关,但是当你首先导入密钥时必须指定ACL,因此在Keychain GUI中添加的任何键都必须被抛出并重新导入。不太好。
答案 0 :(得分:18)
通常,Keychain的“获取信息”对话框提供给您的文件系统的“已清理”版本将不允许您访问隐藏的/ usr / bin目录,但我找到了解决此问题的方法。
答案 1 :(得分:5)
非常感谢,非常感谢David Boike。伟大的解决方法,帮助了我很多。 但是有一种更好的方法可以做到这一点。
Open File Dialog press 'Cmd' + 'Shift' + '.'
该组合应该切换文件系统上隐藏项目的可见性。 如果组合无效,请尝试将演示模式更改为“列表”或“网格”并再次尝试。
谢谢,祝你好运!
答案 2 :(得分:4)
我找到了一个解决方案,通过执行一个“点击”“始终允许”按钮的解决方案,因为没有安全性或certtool运气来添加ACL权限。
#!/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 :(得分: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