Tomcat と Jenkins を起動するために使用される、権限のないユーザー用の iOS デフォルト キーチェーン

Tomcat と Jenkins を起動するために使用される、権限のないユーザー用の iOS デフォルト キーチェーン

Tomcat 8 をサービスとして起動するために作成した、権限のないユーザーがあります。Tomcat は Jenkins を実行します。これは、チームのメンバーが .ipa ファイルとプロビジョニング プロファイルをアップロードし、.ipa ファイルに再署名できるジョブを提供するために使用されます。Jenkins は、.ipa ファイルに再署名するたびにシェル スクリプトを実行します。このシェル スクリプトは最近更新され、現在はセキュリティ コマンドを呼び出していますが、その結果、次のエラーが発生します。

セキュリティ: 証明書のインポートに失敗しました: デフォルトのキーチェーンが見つかりませんでした。

権限のない Tomcat ユーザーのデフォルトのキーチェーンを設定する必要があります。

権限のないユーザーにデフォルトのキーチェーンを追加したり、そのユーザーにそのキーチェーンを使用させたりするにはどうすればよいですか?

コマンドを実行する必要があるのか​​、それとも tomcat.plist でキーチェーンを指定する必要があるのか​​わかりません。

答え1

回避策を見つけました。次の方法を使用して、新しいキーチェーンを動的に作成し、キーチェーンに証明書を追加し、後でキーチェーンを削除することができました。

security create-keychain -p temp "temp.keychain"
security add-certificates -k "temp.keychain" "ios_distribution.cer"
security unlock-keychain -p temp "temp.keychain"

security cms -D -k "temp.keychain" -i "blah.mobileprovision" > <entitlements>

...do some stuff...

security delete-keychain -h "temp.keychain"

権限のないユーザーのキーチェーンを設定する場合は、次のコマンドを使用できます。

default-keychain [-h] [-d user|system|common|dynamic] [-s [keychain]]

元。

default-keychain -h "temp.keychain"

権限のないユーザーによって実行されているシェル スクリプトからそのコマンドを実行できます (私が行っているように)。

関連情報