如何通过命令行为 iOS 开发安装开发者证书/私钥和配置文件?

Posted

技术标签:

【中文标题】如何通过命令行为 iOS 开发安装开发者证书/私钥和配置文件?【英文标题】:How to install developer certificate/private key and provisioning profile for iOS development via command line? 【发布时间】:2011-05-21 03:01:55 【问题描述】:

我正在为 ios 应用程序项目配置自动构建服务器。 我已经完成了大部分。现在,这是最后一轮。安全。

开发人员证书/私钥和配置文件可以通过 GUI 轻松安装到钥匙串中。但我想通过命令行来自动化配置过程。 通过命令行导出/导入证书、私钥、配置文件。

非常感谢任何建议。

【问题讨论】:

您有没有找到安装配置文件的方法?我已经确定了证书,但另一部分仍然让我无法理解...... 【参考方案1】:

始终允许 GUI 被触发,因为尚未为 codesign 提供访问您的私钥的 acl。试试这个:

security unlock-keychain -p <my keychain password>
security import Certificate.p12 -k ~/Library/Keychains/login.keychain -P password -T /usr/bin/codesign

-T 标志告诉安全性允许 codesign 访问您在 Certificate.p12 中导入的密钥。

【讨论】:

是的,这也是我一直在寻找的。我想指出,我遇到了错误消息“安全性:SecKeychainItemImport:不允许用户交互。”尝试运行上述命令时。我忘了解锁我的钥匙链。嗬!运行 'security unlock-keychain' 让它像魅力一样工作。 这按预期工作,但我需要更多...不希望他们在他们的机器上拥有我们真正的私钥)。现在在这里我还需要配置 KeyChain 以始终信任证书。我知道如何在 GUY 中执行此操作,并且我还知道如何通过以下方式添加(导入 + 信任)受信任证书:security add-trusted-cert -k /Library/Keychains/System.keychain -d XXXX.cer -- - 但是,该命令不适用于 .p12 文件。知道我该怎么做吗? 更新:从 maOS Sierra 开始,您可能应该在此处遵循 Ilian Iliev 的流程:***.com/questions/39868578/…【参考方案2】:

我发现了以下提示: http://lists.apple.com/archives/apple-cdsa/2010/Mar/msg00021.html

命令是security。我正在阅读手册页。试用后我会更新这个答案:)

--(编辑)--

首先,我们必须手动授予对钥匙串中证书/密钥的“始终允许”访问权限一次。我不知道如何在没有 GUI 的情况下做到这一点。

并在为每个会话运行构建工具之前运行命令security unlock-keychain。我使用过 SSH,所以每次登录会话都必须执行一次。

【讨论】:

要授予“始终允许”访问权限,请在添加证书和密钥时使用 security import 上的 -A 开关。 不推荐使用 -A 选项,因为它允许任何应用程序使用这些证书。为了更安全,请使用上述-T /usr/bin/codesign 选项。这将允许特定的应用程序。有关其他选项,请参阅 security import --help【参考方案3】:

使用命令行安装证书:

security unlock-keychain -p <machine login password>
security import my_certificate.p12 -k ~/Library/Keychains/login.keychain -P my_password -T /usr/bin/codesign

安装移动配置文件:

简单的方法:

#install profiles, will trigger xcode to install the profile
open "my_profile1.mobileprovision"

# wait for xcode to process the request
sleep 3

# shut down xcode (optional)
kill $(ps aux | grep 'Xcode' | awk 'print $2')

复杂的方式:

PROVISION_FILE ="my_profile.mobileprovision"

uuid=`security cms -D -i $PROVISION_FILE  | grep -aA1 UUID | grep -o "[-a-zA-Z0-9]\36\"`

cp "$PROVISION_FILE " ~/Library/MobileDevice/Provisioning\ Profiles/$uuid.mobileprovision

【讨论】:

以上是关于如何通过命令行为 iOS 开发安装开发者证书/私钥和配置文件?的主要内容,如果未能解决你的问题,请参考以下文章

hbuilder打包ios需要的私钥和profile文件和私钥证书怎么获得

如何获取“开发人员ID应用程序”或“开发人员ID安装程序”证书的私钥?

如何下载私钥证书分发 iOS?

如何将私钥添加到分发证书?

iOS 开发中的各种证书

如何共享 iOS 证书