web-dev-qa-db-fra.com

Codesign a renvoyé une erreur inconnue -1 = ffffffffffffffff

J'ai essayé de code signer une application iOS, Ce sont les étapes que j'ai suivies

    security create-keychain -p password ${KEYCHAIN}
    security set-keychain-settings -u -t 300 ${KEYCHAIN}
    security list-keychains -d user -s login.keychain ${KEYCHAIN}
    security import "$1" -k ${KEYCHAIN} -A -P "${PASSPHRASE}" -A >/dev/null
    security unlock-keychain -p password ${KEYCHAIN}

    /usr/bin/codesign -f -s $IDENTITY --keychain $KEYCHAIN --entitlements $ENTITLEMENTS Payload/Test.app

Cela m'a renvoyé Codesign renvoyé une erreur inconnue -1 = ffffffffffffffff via ssh.

Si j'exécute directement la commande de signe de code sur la machine, la signature est réussie.

Le problème ne concerne que Mac OS Sierra.

23
Madhu Avinash

Avait le même problème il y a un moment, en ajoutant 

security set-key-partition-list -S Apple-tool:,Apple:,codesign: -s -k password ${KEYCHAIN}

résolu pour moi.

21
Gereon

Vous rencontrez le même problème, mais lors de l'archivage directement depuis Xcode . Partager la solution au cas où cela vous aiderait.

Parfois, Keychain semble se retrouver dans un état corrompu. Utilisation de MacOS Sierra aussi.

Symptômes : 

Relogin nécessaire pour accéder aux comptes après le redémarrage de Xcode  Relogin needed to access Accounts after restarting Xcode

Demander un mot de passe lors de l’utilisation de l’accès au trousseau pour certaines opérations  Prompting for password while using Keychain Access for some operations

Keychain Access - Erreur lors de l'accès au trousseau de connexion via Modifier les paramètres du trousseau ...  Keychain Access - Error while accessing login keychain via Change Settings for Keychain ...

Ce qui est résolu pour moi, c’est le verrouillage et le déverrouillage (mot de passe requis) du trousseau impliqué, login dans mon cas.

20
Romano

Je vais participer aussi bien que j'ai dû essayer un peu plus de choses que celles mentionnées ici: le problème était que le trousseau n'aime pas les sessions SSH. J'ai dû les exécuter dans ma session pour résoudre ce problème:

security unlock-keychain -p MY_PASS ~/Library/Keychains/login.keychain
security set-key-partition-list -S Apple-tool:,Apple:,codesign: -s -k MY_PASS ~/Library/Keychains/login.keychain
security set-keychain-settings ~/Library/Keychains/login.keychain

J'ai également supprimé mes certificats de système/certificats de compte actuels en supprimant mon compte de XCode (j'utilise fastlane pour la construction), mais je soupçonne que cela n'aurait pas dû avoir d'impact.

6
Tadas Šubonis

@madhu J'ai essayé de résoudre le même problème et j'ai constaté que le contrôle d'accès pour la clé associée au certificat en question était réglé sur "Confirmer avant d'autoriser l'accès", ce qui ne fonctionnait pas dans Jenkins. Je l'ai modifié (via Keychain Access gui - Obtenir des informations, Contrôle d'accès) en "Autoriser toutes les applications à accéder à cet élément" et ma construction a abouti.

5
Simon H

Vous avez peut-être exporté un fichier tel que p12 à partir de KeyChain, et lorsque le système d'exploitation vous a demandé votre mot de passe root et que vous l'avez refusé, Xcode code alors l'erreur de signature avec cette information. 

Si tel est le cas, vous devez répéter l'action ci-dessus, saisir votre mot de passe, cliquer sur autoriser, puis le code de signe sera accepté.

2
Dan Lee

Cela se produit dans une version sans interface graphique, car l'invite d'accès à la clé ne peut pas être affichée ni être traitée. La solution consiste à empêcher cette invite de s'afficher en autorisant à l'avance l'accès à la clé.

Ouvrez Keychain Access, recherchez la clé de votre certificat de signature (login-> Certificats, puis développez le certificat pour afficher sa clé). Cliquez avec le bouton droit sur la clé et sélectionnez: Lire les informations -> Contrôle d'accès, puis sélectionnez "Autoriser toutes les applications à accéder à cet élément". 

2
pmacro

J'ai essayé presque toutes les suggestions existantes sur le Web, aucune d'entre elles n'a aidé ...

Enfin, nous ne générons à nouveau que le profil de provisioning (pour AdHoc), le retéléchargez et le placez dans ~/Library/MobileDevice/Provisioning Profiles/ en remplaçant celui qui existe déjà m'a sauvé la vie.

Soit dit en passant, la construction de l'AppStore a été couronnée de succès pendant tout ce temps, donc le problème se trouvait bien dans le profil AdHoc lui-même (assez étrange, car il avait bel et bien l'air bien).

0
RAM237

Même si nous avons installé les bons certificats dans le trousseau et le bon profil d'approvisionnement sous ~/Library/MobileDevices/Profils d'approvisionnement. 

Nous pouvons aussi voir 

unknown error -1=ffffffffffffffff

Pour cette erreur, j'ai essayé les étapes ci-dessous pour résoudre le problème:

  1. Redémarrez la machine, déverrouillez le trousseau à l'aide de "securify unlock-keychain", verrouillez à nouveau le trousseau
  2. Supprimez le dossier ~/Library/Developer/Xcode/DerivedData.
  3. Lancer carthage bootstrap --platform iOS
  4. Ouvrez l'espace de travail de synchronisation du code source, exécutez "xattr -rc". puis ouvrez le fichier .xcodeproject dans xcode. 
  5. Activer la signature automatique pour chaque cible. Besoin de vous connecter avec des informations d'identification valides.
  6. Cliquez sur le profil d'approvisionnement sous signature. 
  7. déverrouiller à nouveau le trousseau
  8. Modification du périphérique de génération en Périphériques génériques, sous Produit -> Nettoyer, puis Produit -> Archiver
  9. Il y aura un accès au trousseau autorisé affiché, cliquez sur "Toujours autoriser".
  10. Assurez-vous que l'archive est réussie, puis relancez le travail Jenkins. 
0
Its not blank