如何从.p12文件中获取分发标识的名称

时间:2013-04-02 06:59:39

标签: xcode jenkins xcode4.5 xcodebuild

我正在尝试为Xcode创建自动构建。 直到现在一切正常。 要从命令行构建项目,我使用此命令

xcodebuild –project {“xcode_project file path”}–target {“target_name”} –sdk iphoneos –
configuration Release clean build CODE_SIGN_IDENTITY={$distribution_signing Identity} 
PROVISIONING_PROFILE={UUID for provisioning profile}

我想动态获取UUID和CODE_SIGN_IDENTITY,

我正在做的UUID

UUID=$(grep "<key>UUID</key>" "$PROVISIONING_PROFILE_PATH" -A 1 --binary-files=text | sed -E -e "/<key>/ d" -e "s/(^.*<string>)//" -e "s/(<.*)//")

上面的脚本代码为我提供了任何配置文件的UUID。

我坚持动态获取CODE_SIGN_IDENTITY。 我知道它的形式类似于iPhone Distribution: Developer name

如何从.p12文件中提取iPhone Distribution: Developer name

3 个答案:

答案 0 :(得分:9)

您可以使用security find-identity命令行实用程序列出系统上可用的代码签名标识:

/usr/bin/security find-identity -v -p codesigning
  1) F188B6FD76D83316FCB2E594940XXXXXXXXXXXXE "Mac App Distribution"
  2) ADDB5E33AC36FEB2CA0F1C3BC71XXXXXXXXXXXXE "iPhone Developer: Stuart M (xxxxx)"
 2 valid identities found

-v选项仅将列表限制为“有效”身份,-p codesigning将其过滤为仅对代码进行协同设置,以防您有多个身份。

答案 1 :(得分:2)

这段Python对我有用。我没有必要在Mac上安装任何额外的东西。

# load everything. Probably not the best idea in production...
from OpenSSL.crypto import *

p12 = load_pkcs12(file("./path/to/your.p12", 'rb').read(), 'YOUR_P12_PASSWORD')
print(p12.get_friendlyname())

相信这个答案:Python: reading a pkcs12 certificate with pyOpenSSL.crypto

答案 2 :(得分:0)

对于@Stuart M上提到的不知道如何运行security find-identity命令的用户,这里的答案是:-

xcrun security find-identity -v -p codesigning