我正在尝试自动化使用特定证书构建iPhone应用程序的过程。因此,想象一下是否有其他用户将他们的证书上传到系统中,并且可以立即对其进行代码签名。我想做到这一点而无需任何交互。我也不想使系统混乱或使用不同的用户证书登录钥匙串。为此,我有:
关闭了XCODE中要求对构建进行代码签名的要求。
开发了一个ruby脚本,以通过xcodebuild命令行工具构建应用程序
创建了一个脚本来自动为系统用户创建新的钥匙串
编写了一个脚本来对内置的iPhone应用程序进行代码签名。
一切正常,但是当codesign程序尝试行使签名权限时,我需要手动按Enter键。我的钥匙串都已解锁。奇怪的是,如果我将钥匙串设置为默认钥匙串,它就可以工作,但这是不可扩展的,即在任何给定时间我只能进行一个构建过程。
当我手动单击始终允许该过程时,我会在钥匙串转储中获得一个条目,如下所示:
entry 1:
authorizations (6): decrypt derive export_clear export_wrapped mac sign
don't-require-password
description: privateKey
applications (2):
0: /usr/bin/codesign (OK)
因此,我认为我需要在安全性中使用authorize命令来预先为这些权限预授权代码签名。安全手册页非常差。我似乎无法使用以下命令使其正常工作:
安全-v授权-uew标志| / usr / bin / codesign [指向应用程序和特定钥匙串的代码符号vars]
有人有什么想法吗?
最佳答案
如果您使用-A将证书导入到钥匙串中,它将允许访问所有尝试请求该证书的程序。这不是很安全,但是可以。您也可以使用-T将其限制为特定的应用程序。查找在man security中发现的导入参数。
关于iphone - 如何在没有任何人工干预的情况下添加授权以对来自新钥匙串(keychain)的应用进行代码签名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3864770/