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.
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.
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
Demander un mot de passe lors de l’utilisation de l’accès au trousseau pour certaines opérations
Keychain Access - Erreur lors de l'accès au trousseau de connexion via Modifier les paramètres du trousseau ...
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.
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.
@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.
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é.
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".
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).
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: