codesign を使用して OSX アプリに署名しようとすると、「ユーザー操作は許可されていません」というメッセージが表示される 質問する

codesign を使用して OSX アプリに署名しようとすると、「ユーザー操作は許可されていません」というメッセージが表示される 質問する

自動ビルドは Jenkins 上で実行されています。ビルド自体はスレーブ上で実行されており、スレーブは SSH 経由で実行されます。

エラーが発生します:

00:03:25.113 [codesign-app] build/App.app: User interaction is not allowed.

これまで他の投稿で見たすべての提案を試しました:

  • 署名する直前にセキュリティ ロック解除キーチェーンを使用してキーチェーンのロックを解除します。
  • 署名キーを独自のキーチェーンに移動します。
  • 署名キーをログインキーチェーンに移動します。
  • 署名キーをシステム キーチェーンに移動します。
  • キーを含むキーチェーンのみに 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 が行っていることと同じことをコマンド ラインで実行する方法があるのではないでしょうか。

ベストアンサー1

私もこれと戦ってきました。提案を試すまで何も助けにはなりませんでしたhttp://devnet.jetbrains.com/thread/311971。アシシュ・アグラワルさん、ありがとう!

GUI 経由でビルド ユーザーにログインし、キーチェーン アクセスを開きます。署名秘密キーを選択し、右クリックして [情報を見る] を選択し、[アクセス制御] タブに変更して [すべてのアプリケーションがこの項目にアクセスできるようにする] を選択します。

アクセス制御タブ

おすすめ記事