我正在使用命令行工具(xcodebuild)导出应用程序档案。本质上,这就是我所运行的:
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这就是结果:
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 (如前所述)。这肯定行不通。这是我的密钥链搜索列表:
$ security list-keychains
"/Users/user/Library/Keychains/login.keychain-db"
"/Library/Keychains/System.keychain"显然,jenkins.keychain-db并没有像它应该的那样在那里。如果我要在搜索列表中添加jenkins.keychain-db,它就会开始工作。
不幸的是,对于我来说,这不是一个解决方案,因为我确实有多个具有相同私钥和证书的密钥链。这导致xcodebuild获取它能够找到的第一个 right 证书,该证书将失败,因为密钥链可能没有被解锁。
发布于 2017-03-03 11:59:22
您可以通过以下命令使codesign更喜欢使用您的自定义密钥链:
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扩展。它没有必要使用它,并将导致混乱的行为。
在构建完成之后,您可能需要清理它:
security list-keychains -d user -s login.keychain
security default-keychain -s login.keychainhttps://stackoverflow.com/questions/42484678
复制相似问题