我正在为iOS应用程序项目配置自动构建服务器。
大部分工作已经完成,现在是最后阶段——安全性。
开发人员证书/私钥和预配配置文件可以通过GUI轻松安装到Keychain中。但我想通过命令行完成这个过程,以便自动化整个配置过程。需要通过命令行导出/导入证书、私钥和预配配置文件。
非常感谢您的任何建议!
我正在为iOS应用程序项目配置自动构建服务器。
大部分工作已经完成,现在是最后阶段——安全性。
开发人员证书/私钥和预配配置文件可以通过GUI轻松安装到Keychain中。但我想通过命令行完成这个过程,以便自动化整个配置过程。需要通过命令行导出/导入证书、私钥和预配配置文件。
非常感谢您的任何建议!
始终允许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
我从这里发现了提示:http://lists.apple.com/archives/apple-cdsa/2010/Mar/msg00021.html
命令是security
。我正在阅读手册页。试用后我会在稍后更新这个答案 :)
--(编辑)--
首先,我们必须手动为密钥链中的证书/密钥授予“始终允许”访问权限。我不知道如何在没有GUI的情况下执行此操作。
然后在每个会话中运行构建工具之前运行命令security unlock-keychain
。我使用SSH,所以我必须为每个登录会话执行一次。
security import
的 -A 开关进行操作。 - Luke使用命令行安装证书:
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