10

ssh ターミナル セッションからアプリに署名すると、次のエラーが発生します。

productsign[29321:707] SignData failed: CSSMERR_CSP_NO_USER_INTERACTION (-2147415840)

productsignは最近まで機能していました。

このエラーを回避するにはどうすればよいですか?

4

4 に答える 4

6

Apple サポートにインシデントレポートを提出するときの手順を再現しているときに、Web を何時間もくまなく調べた後、偶然に解決しました。

Mac から (ssh セッションからではなく) 同じコマンドを実行すると、キーチェーンへのアクセス許可を求めるポップアップが生成されました。

「常に許可」を選択すると、問題はなくなりました。永遠に。

于 2013-04-29T12:56:20.097 に答える
5

この端末からキーチェーンのロックを解除してみてください:

security -v unlock-keychain -p "<Password>" "/Users/<UserName>/Library/Keychains/login.keychain"
于 2015-03-10T09:28:49.480 に答える
3

ダニー・シェーマンの答えと私自身の研究に基づいて、私は完全な解決策を見つけました:

  1. 初めてGUIを使用して Mac マシンにログインし、必要な証明書で署名する必要があります。次に、この証明書を使用するための「常に許可する」オプションを含む要求ウィンドウが表示されます(またはそのようなもの)。

    • 重要: sshまたはその他のコンソール セッション ( Jenkinsなど) でproductsign を使用する必要がある場合、証明書はユーザー スコープではなくシステムスコープにインストールする必要があります。 ここに画像の説明を入力 ここに画像の説明を入力
  2. 証明書をユーザー スコープに保持する必要がある場合は、何かに署名する必要があるときに、コンソール セッションで毎回キーチェーンのロックを解除する必要があります ( Alexが書いたように)。

    security -v unlock-keychain -p "Password" /Users/<UserName>/Library/Keychains/login.keychain"
    

    ビルドスクリプトに入れることができます。

    このソリューションの明らかな欠点 - パスワードを暗号化されていないスクリプトに保存する必要があるため、最初のソリューションをお勧めします。

于 2015-09-11T09:52:55.640 に答える