首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >codesign --密钥链被忽略

codesign --密钥链被忽略
EN

Stack Overflow用户
提问于 2017-02-27 11:30:14
回答 1查看 1.3K关注 0票数 3

我正在使用命令行工具(xcodebuild)导出应用程序档案。本质上,这就是我所运行的:

代码语言:javascript
复制
xcodebuild -workspace "${WORKSPACE_PATH}" \
    -scheme "${SCHEME_NAME}" \
    -archivePath "${PROJECT_ARCHIVE}" \
    -configuration "${CONFIGURATION}" \
    -sdk "${TARGET_SDK}" \
    DEVELOPMENT_TEAM="XXXXXXXX" \
    OTHER_CODE_SIGN_FLAGS="--keychain /Users/user/Library/Keychains/jenkins.keychain" \
    archive

这就是结果:

代码语言:javascript
复制
Check dependencies
No signing certificate "iOS Development" found:  No "iOS Development" signing certificate matching team ID "XXXXXXX" with a private key was found.
Code signing is required for product type 'Application' in SDK 'iOS 10.2'

** ARCHIVE FAILED **


The following build commands failed:
Check dependencies
(1 failure)
$ echo $?
65

由于codesign忽略--键链参数,代码签名失败.下面是有趣的部分。我想使用的密钥链是jenkins.keychain-db (如前所述)。这肯定行不通。这是我的密钥链搜索列表:

代码语言:javascript
复制
$ security list-keychains
"/Users/user/Library/Keychains/login.keychain-db"
"/Library/Keychains/System.keychain"

显然,jenkins.keychain-db并没有像它应该的那样在那里。如果我要在搜索列表中添加jenkins.keychain-db,它就会开始工作。

不幸的是,对于我来说,这不是一个解决方案,因为我确实有多个具有相同私钥和证书的密钥链。这导致xcodebuild获取它能够找到的第一个 right 证书,该证书将失败,因为密钥链可能没有被解锁。

EN

回答 1

Stack Overflow用户

发布于 2017-03-03 11:59:22

您可以通过以下命令使codesign更喜欢使用您的自定义密钥链:

代码语言:javascript
复制
security list-keychains -d user -s jenkins.keychain
security default-keychain -s jenkins.keychain

# to unlock the kechain:
security unlock-keychain -p $PW jenkins.keychain

把这个放在xcodebuild之前..。

您可以省略-db扩展。它没有必要使用它,并将导致混乱的行为。

在构建完成之后,您可能需要清理它:

代码语言:javascript
复制
security list-keychains -d user -s login.keychain
security default-keychain -s login.keychain
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42484678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档