首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何添加授权来在没有任何人工交互的情况下从新的密钥链中对应用进行签名

如何添加授权来在没有任何人工交互的情况下从新的密钥链中对应用进行签名
EN

Stack Overflow用户
提问于 2010-10-05 14:42:35
回答 6查看 10.3K关注 0票数 15

我试图用一个特定的证书来自动化构建iphone应用程序的过程。因此,想象一下,如果不同的用户将他们的证书上传到系统中,并且它可以立即用于代码签名。我想在没有任何互动的情况下这样做。我也不想用不同的用户证书来扰乱系统或登录密钥链。为此,我有:

  • 关闭了XCODE中的要求,即需要对进行代码签名,通过xcodebuild命令行工具
    • 创建了一个脚本,以便为my system的用户自动创建一个新的密钥链--
    • 编写了一个脚本来对已构建的iphone应用程序进行代码签名。

一切正常,但当codesign程序尝试执行签名权限时,我需要手动单击enter。我的钥匙链都没锁。奇怪的是,如果我使密钥链成为默认的密钥链,那么它就能正常工作,但这是不可扩展的(即,在任何给定的时间,我只能有一个构建过程。

当我手动单击“始终允许”该过程时,我在我的密钥链转储中得到一个条目,如下所示:

代码语言:javascript
复制
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)

因此,我认为我需要在安全方面使用授权命令,以便对这些权限进行预自动化codesign。安全手册页面很差。我似乎无法让它使用这样的命令:

安全-v授权-uew符号\ /usr/bin/codesign代码标记vars,指向app和一个特定的密钥链

有人有什么想法吗?

EN

回答 6

Stack Overflow用户

发布于 2011-03-25 15:52:54

如果您使用-A将证书导入到您的密钥链中,它将允许访问所有试图请求证书的程序。这不是很安全,但很有效。您也可以使用-T将其限制在特定的应用程序上。查找在人防系统中找到的进口参数。

票数 11
EN

Stack Overflow用户

发布于 2011-01-16 15:30:35

在我的系统中,一旦密钥链被解锁

安全解锁-密钥链

我只是让xcodebuild同时完成构建和代码签名。

如果您的keychanins是解锁的,它应该没有必要使用上述调用。

您还可能希望检查具有安全权限的命令执行。

票数 4
EN

Stack Overflow用户

发布于 2012-01-12 15:54:01

我想在这里添加答案池,但也重新讨论我认为没有答案的部分问题。

下面的命令导入一个标识(cert +私钥),并指定它应该“始终允许”代码符号访问它(防止键链访问警报提示用户单击按钮):

代码语言:javascript
复制
`security import Targets/CurrentTarget/Certificate.p12 -k #{KEYCHAIN} -P "#{cert_pwd}" -T /usr/bin/codesign`

此命令允许所有应用程序访问,而不仅仅是代码签名:

security import Targets/CurrentTarget/Certificate.p12 -k #{KEYCHAIN} -P "#{cert_pwd}" -A

这些命令中的任何一个都会处理每次在密钥链中使用私钥时弹出的对话框。但是,它们不会处理第一次请求使用私钥许可时弹出的类似警报。此警报将在第一次使用时出现,并要求您选择“始终允许”、“拒绝”或“允许”。在此之后(如果您使用上面的-T-A选项,假设键仍然在您的密钥链中),您将不会看到对话框。

我的问题是:如何消除第一次使用时出现的警报?

我已经考虑过使用Apple来自动点击“始终允许”按钮,但是由于警报是在xcodebuild命令的中间触发的,所以我不确定这是否有效。任何帮助都将不胜感激!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3864770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档