mbo*_*ogh 8 iphone xcode xcodebuild codesign
我刚刚了解了使用OTHER_CODE_SIGN_FLAGS指定钥匙串的可能性,其中包括构建和签署应用程序所需的证书.但不幸的是,我无法让它发挥作用.
我的脚本看起来像这样:
#!/bin/bash
TARGET="MyProject"
CONFIGURATION="Release"
SDK="iphoneos"
IDENTITY="iPhone Developer: John Doe (XX22RR22O)"
KEYCHAIN="/Users/username/Library/Keychains/someKeyChain.keychain"
PASSWORD=""
security unlock-keychain -p ${PASSWORD} ${KEYCHAIN}
xcodebuild -target "${TARGET}" -configuration ${CONFIGURATION} -sdk $SDK CODE_SIGN_IDENTITY="${IDENTITY}" OTHER_CODE_SIGN_FLAGS="--keychain ${KEYCHAIN}"
Run Code Online (Sandbox Code Playgroud)
但那失败了:
Check dependencies
[BEROR]Code Sign error: The identity 'iPhone Developer: John Doe (XX22RR22O)' doesn't match any valid certificate/private key pair in the default keychain
Run Code Online (Sandbox Code Playgroud)
但是,如果我首先切换到钥匙串它可以工作,但是在多个构建可能同时发生的构建服务器上不可用:
#!/bin/bash
TARGET="MyProject"
CONFIGURATION="Release"
SDK="iphoneos"
IDENTITY="iPhone Developer: John Doe (XX22RR22O)"
KEYCHAIN="/Users/username/Library/Keychains/someKeyChain.keychain"
PASSWORD=""
security unlock-keychain -p ${PASSWORD} ${KEYCHAIN}
security default-keychain -s ${KEYCHAIN}
xcodebuild -target "${TARGET}" -configuration ${CONFIGURATION} -sdk $SDK CODE_SIGN_IDENTITY="${IDENTITY}" OTHER_CODE_SIGN_FLAGS="--keychain ${KEYCHAIN}"
Run Code Online (Sandbox Code Playgroud)
希望你们能帮忙 - 莫顿
我发现如果我没有将钥匙串添加到钥匙串搜索列表中,xcodebuild 将不会尊重该OTHER_CODE_SIGN_FLAG --keychain设置。我必须添加这段代码:
// Early in the script
ORIGINAL_KEYCHAINS=`security list-keychains -d user`
// After I create my keychain, add it to the list
security list-keychains -d user -s ${ORIGINAL_KEYCHAINS} "${KEYCHAIN_NAME}"
// On cleanup
security list-keychains -d user -s ${ORIGINAL_KEYCHAINS}
Run Code Online (Sandbox Code Playgroud)
不用说,我花了几个小时来解决这个问题。
确保钥匙链在您的构建过程中保持打开状态也很有帮助。正如这里建议的:
security -v set-keychain-settings -lut 7200 ${KEYCHAIN_NAME}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3287 次 |
| 最近记录: |