2

XCode プラグインは、ユーザー jenkins からのキーチェーンのみが XCode ビルドの署名に使用できると想定しているようです。

キーチェーン パスというセクションがありますが、そこに入力すると、次のようになります。
/Users/Me/Library/Keychains/login.keychain

ビルドログには次のように表示されます。

"Will not set default: file /Users/Shared/Jenkins/Library/Keychains/Users/Me/Library/Keychains/login.keychain does not exist"

プラグインは、私が入力した内容を /Users/Shared/Jenkins/Library/Keychains/ に追加しました。

デフォルト値のままにしておくと

${HOME}/Library/Keychains/login.keychain 

ビルドログには次のように表示されます。

"Will not set default: file /Users/Shared/Jenkins/Library/Keychains/login.keychain does not exist"

したがって、XCode ビルド プラグインはユーザーに Jenkins を強制しています。これは、ユーザー Jenkins としてキーチェーンを設定する必要があることを意味しますか? その場合、これはどのように行われますか-JenkinsがMacにインストールされると、デフォルトでjenkinsというユーザーが作成されますが、これは匿名ユーザーであり、ユーザーjenkinsとしてマシンにログオンすることは実際には不可能です。したがって、ユーザー jenkins のキーチェーンはどのように作成されますか?

プラグインがこれを強制するのはなぜですか? また、この側面が文書化されていないのはなぜですか?

別のユーザーのキーチェーンを使用できる場合、どうすればよいですか? - 文書化されていません。

4

2 に答える 2

3

jenkins のデフォルトをそのままにして、フォルダー/Users/Shared/Jenkins/Library/Keychainsを作成し、そこに というファイルを配置しますlogin.keychain

そのファイルは、メニュー項目からキーチェーン アクセスを使用して作成できますFile - New Keychain...。そこに入力したのは、関連する秘密鍵を含む不足している証明書です。

于 2013-01-21T13:11:34.753 に答える
0

私はこれといくつかの他の理由でそのプラグインをあきらめました.Xcodeビルドを実行し、「シェルの実行」ステップでコマンドラインから署名しています.

xcodebuild -verbose -alltargets -configuration Debug clean build CODE_SIGN_IDENTITY="${CODE_SIGN_IDENTITY}" PROVISIONING_PROFILE=${PROVISIONING_PROFILE}
&&
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${WORKSPACE}/client_trunk/build/Debug-iphoneos/${Application}.app" -o "${WORKSPACE}/client_trunk/build/Debug-iphoneos/${Application}-Debug-${shortVer}.${revVer}.ipa" --sign "${CODE_SIGN_IDENTITY}" --embed "/Users/[youruser]/Library/MobileDevice/Provisioning Profiles/${PROVISIONING_PROFILE}.mobileprovision"

上記${CODE_SIGN_IDENTITY}は、次のように見えるものであり、次のようなiPhone Developer: blah プロファイル${PROVISIONING_PROFILE}の 16 進数ですF152C66E-B99A-47F6-B262-376CE4403D71

キーチェーンの問題に対処するには、これを試してください:

security default-keychain -s <keychain-name>.keychain

于 2012-12-02T03:44:49.043 に答える