web-dev-qa-db-fra.com

La session xcode 9.3 expire chaque fois que je ferme et rouvre Xcode

je vois mon compte afficher "Votre session a expiré. Veuillez vous connecter." dans Xcode-> Préférences-> Comptes chaque fois que je redémarre Xcode, même si je me connecte avec succès entre les redémarrages. De plus, ma ligne de commande xcodebuild échoue car elle indique que la session utilisateur a expiré.

Nous avons essayé de supprimer et de rajouter l'utilisateur, mais cela n'a pas résolu le problème. Nous avons désactivé l'authentification à 2 facteurs et l'avons réactivée, mais cela n'a pas non plus résolu le problème, bien que nous le voyions autoriser la connexion sans l'authentification à 2 facteurs pendant un certain temps, jusqu'à ce que nous la désactivions puis la réactivions. , puis il a recommencé à demander un code.

quelqu'un a-t-il vu ce comportement?

23
cmaroney

Xcode 9.3 utilise maintenant des groupes d'accès au trousseau pour stocker vos informations d'identification Apple ID dans le trousseau. Au lancement, il tente de migrer toutes les informations d'identification existantes des versions précédentes de Xcode vers le groupe d'accès. Dans certains cas, cette migration semble échouer.

Vous n'avez probablement pas besoin d'installer d'anciennes versions de Xcode pour contourner ce problème. Si vous supprimez vos comptes de Xcode; quitter Xcode; ouvrir l'accès au trousseau; rechercher et supprimer toutes les entrées "Xcode-Token" ou "Xcode-AlternateDSID"; relancer Xcode; et ajoutez vos comptes, alors vos comptes devraient fonctionner correctement dans Xcode 9.3 à partir de ce moment.

Si vous êtes capable de reproduire ce problème, je voudrais vous demander de déposer un bogue sur bugreport.Apple.com et de joindre un diagnostic système à partir de votre machine.

Mise à jour

Merci à tous ceux qui ont déposé des rapports de bogues! Nous avons identifié le problème et nous nous excusons pour la gêne occasionnée. En attendant, vous pouvez éviter ce problème en définissant un utilisateur par défaut. Dans Terminal, entrez cette commande:

defaults write com.Apple.dt.Xcode DVTDeveloperAccountUseKeychainService -bool NO

Relancez ensuite Xcode et réauthentifiez vos comptes d'identification Apple ID dans le volet des préférences Comptes si nécessaire. À partir de là, vous devriez pouvoir quitter et relancer Xcode sans avoir à vous réauthentifier à chaque fois.

28
itai195

Après avoir parcouru une longue liste de choses pour essayer de corriger cette erreur (nouvel utilisateur créé, 2FA activé/désactivé, connexion/déconnexion iCloud, trousseau restauré, utilisateur copié sur une autre machine, etc.) sans succès, j'ai essayé un long shot.

Étant donné que je ne vois ce problème que sur les machines High Sierra à installation récente avec une toute nouvelle installation du dernier Xcode (les mises à niveau semblent correctes), je me demandais si le problème était visible dans les versions précédentes.

Comme j'avais le Xcode 8.3.3.xip sur le réseau, j'ai déballé, installé et lancé. Il avait le même problème de session expirée, donc je me suis reconnecté (le processus était légèrement maladroit mais a fonctionné), puis j'ai quitté Xcode et relancé. Après la deuxième tentative, non seulement la session a persisté dans la version 8.3.3, mais à ma grande surprise, la version 9.3 de Xcode fonctionne désormais très bien également.

Donc, ma suggestion est d'aller à Apple Developer et de vous connecter puis d'aller à Voir plus de téléchargements et d'obtenir une version précédente et d'essayer. Le fichier 8.3.3 que j'ai utilisé peut être téléchargé à partir de là. Je n'ai pas supprimé mon installation 9.3 existante, j'ai simplement renommé la version 8.3.3 décompressée en un nom alternatif et les deux étaient assis côte à côte dans/Applications me permettant de les lancer à plusieurs reprises à tour de rôle pour les tests.

5
TendrilSix

Apple vient de publier Xcode 9.3.1 qui devrait résoudre le problème. D'après les notes de version:

Correction d'un problème qui obligeait l'utilisateur à se connecter avec son Apple ID à plusieurs reprises. (39573406)

4
PatrickDotStar

Étant donné que mon compte était nouveau ici, je ne peux pas simplement ajouter un commit pour prendre en charge @TendrilSix.

réponse de TendrilSix ci-dessus pourrait résoudre le problème. Si vous rencontrez le même problème, réinstallez simplement Xcode 8.3.3 et connectez-vous à votre compte de développement dans Xcode 8.3.3.

La chose la plus importante,

Si Apple n'a pas résolu ce problème à l'avenir. NE PAS DÉSINSTALLER XCODE 8.3.3.

Nous avons constaté que sur nos machines de développement, ce problème ne se produisait que sur Mac qui avait déjà installé Xcode 8.x et 9.x ensemble.

Après avoir désinstallé Xcode 8.3.3, les comptes Dev se connectent à nouveau dans Xcode 9.x afficheront "Votre session a expiré. Veuillez vous connecter."

Si un Mac avait déjà installé 8.3.3 et 9.3.

Seule la connexion en 8.3.3 était disponible, le comportement de connexion ajoutera 17 éléments dans le trousseau. Y compris "Xcode-Token" & "Xcode-AlternateDSID"

La connexion 9.3 ne créera que 15 éléments dans le trousseau. "Xcode-Token" et "Xcode-AlternateDSID" manquants

Si une mise à niveau de Mac à partir de Xcode 7.x 8.x 9.x et n'a jamais installé deux ou plusieurs versions différentes de Xcode ensemble.

La connexion 9.3 créera 17 éléments dans le trousseau, et le compte dev fonctionne correctement.

1
Frank