45

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

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

任何建议将不胜感激。

4

3 回答 3

52

始终允许 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 中导入的密钥。

于 2011-03-17T22:18:26.103 回答
15

我从以下网址找到了提示:http: //lists.apple.com/archives/apple-cdsa/2010/Mar/msg00021.html

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

- (编辑) -

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

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

于 2010-12-06T17:58:14.267 回答
1

使用命令行安装证书:

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
于 2020-08-20T01:32:53.113 回答