2017-02-27 14 views
0

コマンドラインツール(xcodebuild)を使用してアプリケーションアーカイブをエクスポートしています。codesign --keychainが無効になる

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が--keychainパラメータを無視しているため、コード署名に失敗しました。ここに興味深い部分があります。私が使用したいキーチェーンはjenkins.keychain-dbです(上で指定した通りです)。それは確かに動作しません。ここに私のキーチェーンの検索リストは次のようになります。それがあるべきよう

$ security list-keychains 
"/Users/user/Library/Keychains/login.keychain-db" 
"/Library/Keychains/System.keychain" 

明らかjenkins.keychain-dbがそこにはありません。検索リストにjenkins.keychain-dbを追加すると、検索リストが機能し始めます。

私は同じ秘密鍵と証明書を持つ複数のキーチェーンを持っているため、残念ながらこれは私にとっては解決策ではありません。これにより、xcodebuildは最初にというという証明書を受け取るようになり、キーチェーンがロックされていない可能性があるため、失敗する証明書が見つかることがあります。

答えて

1

あなたは協調設計は、以下のコマンドを使用してカスタムキーチェーンを使用して好むことができます:

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.keychain 
+0

を? –

関連する問題