8

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}"

しかし、それは失敗します:

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

しかし、最初にキーチェーンに切り替えると機能しますが、複数のビルドが同時に発生する可能性があるビルドサーバーでは使用できません。

#!/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}"

あなたたちが助けることができることを願っています-モーテン

4

4 に答える 4

4

キーチェーンをキーチェーン検索リストに追加しなかった場合、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} 

言うまでもなく、私はこれを理解するのに何時間も費やしました。

また、ビルドの期間中、キーチェーンが開いたままであることを確認してください。ここでアドバイスされているように

security -v set-keychain-settings -lut 7200 ${KEYCHAIN_NAME}
于 2014-06-09T05:34:08.933 に答える
3

答えはアップグレードすることです。Xcode4.3は、ビルドステップOTHER_CODE_SIGN_FLAGS中にフラグを尊重します。Check dependencies

于 2012-02-27T22:22:21.103 に答える
1

iOSプロジェクト用にCIをセットアップしようとしたときに、同じ問題が発生しました。PackageApplicationキーチェーンオプションの受け渡しをサポートするようにPerlスクリプトを更新することになりました。位置:

 /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication

更新されたスクリプトをGitHubに公開できるように、Appleからのライセンスの説明をまだ待っています。

于 2011-11-28T18:24:33.967 に答える
0

最も単純なスクリプトビルドを実行しない限り、これらはどれも実際には機能しません。@Tylerが言ったように、PackageApplicationはキーチェーンの指定をサポートしていません。また、xcodeの一部のバージョンでは、依存関係をチェックするときにキーチェーン間で重複する証明書がない必要があります。

時間を無駄にしないでください。Appleに電話して、証明書の1つを名前変更するように依頼してください(実際には、会社の名前を変更します---接尾辞を追加して---証明書を再生成し、プロファイルを更新する必要があります)。

于 2013-04-19T17:29:05.383 に答える