[解決済み] OSXアプリにcodesignで署名しようとすると、"User interaction is not allowed "と表示される。
質問
自動ビルドはJenkinsで行っています。ビルド自体はスレーブで実行されており、スレーブはSSH経由で実行されます。
エラーが発生します。
00:03:25.113 [codesign-app] build/App.app: User interaction is not allowed.
これまで、ここの他の投稿で見たすべての提案を試してみました。
- 署名の直前に security unlock-keychain を使ってキーチェーンのロックを解除する。
- 署名キーを独自のキーチェーンに移動させる。
- 署名キーをログインキーチェーンに移動させる。
- 署名キーをシステムキーチェーンに移動させる。
- 手動でlist-keychainsをキーを含むキーチェーンだけに設定する。
どの場合も、同じエラーが発生します。
この問題を診断するために、ローカルのターミナルで "security unlock-keychain" コマンドを実行してみたところ、実際にはキーチェーンのロックが解除されないことがわかりました。これは、コマンドラインでパスワードを渡しても、パスワードの入力を求めても、同じことが起こります。GUIで同じキーチェーンのロックを解除すると、パスワードの入力を求められ、その後ロックが解除されます。さらに、"security lock-keychain"を実行すると、次のようになります。 する は、コマンド実行後すぐにキーロックが表示されます。このことから、unlock-keychainは実際には機能しないと思われます。Lion (ビルドスレーブとして使用しています) と Mavericks (私が開発しています) で同じ挙動を経験しました。
次に、すべてのセキュリティコマンドに-vを追加してみました。
list-keychains "-d" "system" "-s" "/Users/tester/.secret/App.keychain"
Listing keychains to see if it was added: ((
"/Library/Keychains/System.keychain"
))
unlock-keychain "-p" "**PASSWORD**" "/Users/tester/.secret/App.keychain"
build/App.app: User interaction is not allowed.
このことから、うまくいっていないのはlist-keychainsのようです。もしかしたら、どちらも機能していないかもしれませんね :/。
があります。 似たような質問はこちら . 解決策は面白いです - launchctlで"SessionCreate"をtrueに設定することです。しかし、私はマスター上でビルドしていません。私のビルドプロセスは、スレーブのビルドマシン上でSSHから開始されます。もしかしたら、"SessionCreate" を実行したときに launchctl が行っていることを行うコマンドラインの方法があるのではありませんか?
解決方法は?
というのも、2日半に渡り、いろいろと試した結果、あることが功を奏したようなのです。このままうまくいくことを祈りつつ、今は手を引いておこうと思います。
本質的には、以下のようなことになるようです。
-d system
が実際に機能しない。ですから、このあたりの他の質問に対する多くの回答は、おそらくそれを反映するように更新されるべきでしょう。
security -v list-keychains -s "$KEYCHAIN" "$HOME/Library/Keychains/login.keychain"
security list-keychains # so we can verify that it was added if it fails again
security -v unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN"
codesign --sign "$SIGNER_IDENTITY" --force --signature-size 9600 \
--resource-rules src/AppResourceRules.plist --timestamp --verbose \
"$APP"
関連
-
[解決済み】Gitのエラー。リモートリポジトリへの接続時に「Host Key Verification Failed」。
-
[解決済み] -bash: export: =': 有効な識別子ではありません
-
[解決済み】なぜこのマージが必要なのか、特に更新された上流をトピックブランチにマージする場合、コミットメッセージを入力してください。
-
[解決済み】dyld: ライブラリがロードされない ... 理由: 画像が見つからない
-
[解決済み] Macで実行するとDockerコマンドが見つからない
-
[解決済み] Mac OS Xのターミナルでcdコマンドを逆引きするにはどうすればよいですか?
-
[解決済み] エラー:戻り値の型が異なるだけの関数はオーバーロードできない
-
[解決済み] MacVimと通常のVimの違いは何ですか?
-
[解決済み] ターミナルコマンド:ls -lは何を示しているのでしょうか?
-
[解決済み] homebrewのパーミッションを修正する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] -bash: export: =': 有効な識別子ではありません
-
[解決済み】なぜこのマージが必要なのか、特に更新された上流をトピックブランチにマージする場合、コミットメッセージを入力してください。
-
[解決済み] MacVimと通常のVimの違いは何ですか?
-
[解決済み] .ssh/config: "不正な設定オプションです。Mac OS Sierra 10.12.6 で "UseKeychain" が表示される。
-
[解決済み] .git/index.lock' を削除してください。パーミッションが拒否されました。
-
[解決済み] gdbが「プロセスIDのMachタスクポートが見つからない」というエラーで失敗する
-
[解決済み] MacのApplication Loaderアプリはどこにありますか?
-
[解決済み] Macにsshpassをインストールする方法は?
-
[解決済み] MacにGNU GCCをインストールする
-
[解決済み] 画面をGIFで記録する方法を教えてください。[クローズド]。