web-dev-qa-db-ja.com

Xencode、Jenkins / SSHからのCodesignエラー-「ユーザー操作は許可されていません」

Jenkinsで自動化されたxcodebuildを実行しようとしていますが、エラーが発生しています

ユーザーの操作は許可されていません。コマンド/ usr/bin/codesignが終了コード1で失敗しました

私はすでに参照しています 「ユーザーの操作は許可されていません」は、codesignを使用してOSXアプリに署名しようとしています および他の同様のスレッドですが、どの解決策でもエラーを適切に解決できないようです。


これが私がすでに試したことです:

  • すべてのアイテムにキーチェーンへのアクセスを許可し、「常に許可」リストにコードサインを追加しました(ここで行うように https://stackoverflow.com/a/22637896

  • キーチェーンアクセスの設定とコマンドの両方を使用して、タイムアウトでキーチェーンが自動的にロックされないようにキーチェーンを設定しました

    security set-keychain-settings -t 3600 -l <KEYCHAIN>
    
  • 電話してみた

    codesign --sign <CODE SIGN IDENTITY> --force ...
    

    プロジェクトがコンパイルされる前(より具体的には、このソリューション https://stackoverflow.com/a/20208104 )、これはプロジェクトを正常にビルドしますが、コンパイル前のコード署名が正しいか信頼できるとは思いません。 (編集:これはジェンキンスから実行した場合も失敗しました)


これが私が実行しているコマンドです:

security unlock-keychain -p <PASSWORD> <KEYCHAIN>
xcodebuild -scheme <SCHEME> -workspace <WORKSPACE> -derivedDataPath <BUILD DIRECTORY> -configuration <CONFIGURATION> "CONFIGURATION_BUILD_DIR=<BUILD DIRECTORY>" "CODE_SIGN_IDENTITY=<CODE SIGN ID>" "PROVISIONING_PROFILE=<PROVISIONING PROFILE>" clean build

興味深いことに、マシン上でプロジェクトをビルドすると上記のコマンドで動作しますが、ssh(およびjenkins)でまったく同じコマンドを実行しようとするとエラーが発生します。


よろしくお願いします!

20
reyes20

Productsignを使用する自動ビルド(Jenkins w/remote SSH)は、ビルドボックスをYosemiteからSierraにアップグレードするまでうまく機能しました。

productsign [4065:51711] RSA署名の設定エラー:ユーザーの操作は許可されていません。 (-25308)

SOで見つかったさまざまなソリューションを試しましたが、どれもうまくいきませんでした。

最終的に、私はそれを次のように修正しました:

  1. キーチェーンを開き、環境設定に移動します
  2. 「デフォルトのキーチェーンをリセット」をクリックします
  3. 「操作は許可されていません」などのメッセージが表示されます
    • ユーザーは管理者であるため、エラーは意味がありませんでした
    • ログインキーチェーンは削除されますが、再作成されません。
  4. ログアウトして再度ログインする
    • 新しいログインキーチェーンが表示されます
    • productsignが再び機能します(自動ビルドにより)

「開発者IDインストーラー:ACME、Inc(12345ABCDE)」証明書がシステムキーチェーンにあることに注意してください。

0
David Bertrand