web-dev-qa-db-fra.com

Xcode, erreur de code de Jenkins / SSH - "L'interaction utilisateur n'est pas autorisée"

J'essaie d'exécuter un xcodebuild automatisé sur Jenkins, mais je rencontre l'erreur

L'interaction de l'utilisateur n'est pas autorisée. La commande/usr/bin/codesign a échoué avec le code de sortie 1

J'ai déjà référencé "L'interaction utilisateur n'est pas autorisée" en essayant de signer une application OSX en utilisant codesign et d'autres threads similaires, mais aucune des solutions ne semble corriger correctement l'erreur.


Voici ce que j'ai déjà essayé:

  • J'ai autorisé tous les articles à accéder au trousseau, et j'ai spécifiquement ajouté le code à la liste "toujours autoriser" (comme ici https://stackoverflow.com/a/22637896 )

  • J'ai défini le trousseau pour qu'il ne se verrouille pas automatiquement avec un délai d'expiration, à la fois via les paramètres d'accès au trousseau et via la commande

    security set-keychain-settings -t 3600 -l <KEYCHAIN>
    
  • J'ai essayé d'appeler

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

    avant la compilation du projet (plus précisément, cette solution https://stackoverflow.com/a/20208104 ), et bien que cela crée avec succès le projet, je ne pense pas que la signature de code avant la compilation soit correcte ou fiable . (modifier: cela a également échoué lors de l'exécution à partir de jenkins)


Voici les commandes que j'exécute:

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

Quelque chose d'intéressant à noter est que la construction du projet sur la machine fonctionne avec les commandes ci-dessus, mais essayer d'exécuter exactement les mêmes commandes sur ssh (et jenkins) provoque l'erreur.


Merci d'avance pour votre aide !

20
reyes20

La construction automatisée (Jenkins avec SSH distant), qui utilise productign, a bien fonctionné jusqu'à ce que nous ayons mis à niveau la boîte de construction de Yosemite vers Sierra.

productsign [4065: 51711] Erreur de configuration de la signature RSA: l'interaction de l'utilisateur n'est pas autorisée. (-25308)

Nous avons essayé différentes solutions trouvées sur SO, mais aucune n'a fonctionné.

Finalement, je l'ai corrigé en faisant ce qui suit:

  1. Ouvrez le trousseau, allez dans les préférences
  2. Cliquez sur "Réinitialiser mon trousseau par défaut"
  3. Le message "opération non autorisée" ou similaire s'affiche
    • L'erreur n'a aucun sens puisque l'utilisateur est administrateur
    • le trousseau de connexion est supprimé, mais pas recréé.
  4. Déconnectez-vous et reconnectez-vous
    • un nouveau trousseau de connexion apparaît
    • productign fonctionne à nouveau (grâce à la construction automatisée)

Veuillez noter que notre certificat "Developer ID Installer: ACME, Inc (12345ABCDE)" se trouve dans le trousseau système.

0
David Bertrand