我正在为 iOS 应用程序项目配置自动构建服务器。我已经完成了大部分。现在,这是最后一轮。安全。
开发人员证书/私钥和配置文件可以通过 GUI 轻松安装到钥匙串中。但我想通过命令行来自动化配置过程。通过命令行导出/导入证书、私钥、配置文件。
任何建议将不胜感激。
我正在为 iOS 应用程序项目配置自动构建服务器。我已经完成了大部分。现在,这是最后一轮。安全。
开发人员证书/私钥和配置文件可以通过 GUI 轻松安装到钥匙串中。但我想通过命令行来自动化配置过程。通过命令行导出/导入证书、私钥、配置文件。
任何建议将不胜感激。
始终允许 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 中导入的密钥。
我从以下网址找到了提示:http: //lists.apple.com/archives/apple-cdsa/2010/Mar/msg00021.html
命令是security
。我正在阅读手册页。试用后我会更新这个答案:)
- (编辑) -
首先,我们必须手动授予对钥匙串中证书/密钥的“始终允许”访问权限。我不知道如何在没有 GUI 的情况下做到这一点。
security unlock-keychain
并在为每个会话运行构建工具之前运行该命令。我使用过 SSH,所以每次登录会话都必须执行一次。
使用命令行安装证书:
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