4

我正在尝试为 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

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

4

3 回答 3

11

您可以使用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其过滤为仅代码签名身份,以防您有多个身份。

于 2013-04-02T07:06:21.997 回答
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:使用 pyOpenSSL.crypto 读取 pkcs12 证书

于 2015-05-19T02:09:37.837 回答
0

对于那些不知道如何运行security find-identity@Stuart M 中提到的命令的人来说,这里是如何做到的:-

xcrun security find-identity -v -p codesigning
于 2020-07-19T14:42:18.383 回答