xcode 9.3 session истекает каждый раз, когда я закрываю и снова открываю Xcode

Я вижу, что моя учетная запись "Срок вашей сессии истек. Пожалуйста, авторизуйтесь". в Xcode-> Настройки-> Учетные записи каждый раз, когда я перезапускаю Xcode, хотя я успешно вхожу в систему между перезапусками. Кроме того, моя командная строка xcodebuild терпит неудачу, поскольку говорит, что пользовательский сеанс истек.

Мы попытались удалить и повторно добавить пользователя, и это не решило проблему. Мы отключили 2-факторное аутентификацию и снова включили его, и это также не решило проблему, хотя мы видели, что она разрешает логин без двухфакторного авторизации некоторое время, пока мы не выключили его и не включили снова, а затем он снова начал запрашивать код.

кто-нибудь видел это поведение?

Ответ 1

Xcode 9.3 теперь использует группы доступа Keychain для хранения учетных данных Apple ID в цепочке ключей. При запуске он пытается перенести любые существующие учетные данные из предыдущих версий Xcode в группу доступа. В некоторых случаях эта миграция, похоже, терпит неудачу.

Вероятно, вам не нужно устанавливать более старые версии Xcode, чтобы обойти это. Если вы удаляете свои учетные записи из Xcode; выйти из Xcode; открыть доступ к Keychain; найти и удалить записи "Xcode-Token" или "Xcode-AlternateDSID"; перезапустить Xcode; и добавьте свои учетные записи обратно, то ваши учетные записи должны корректно работать в Xcode 9.3 с этого момента.

Если вы способны воспроизвести эту проблему, я хотел бы попросить, чтобы вы отправили ошибку на bugreport.apple.com и подключили sysdiagnose с вашего компьютера.

Обновить

Спасибо всем, кто подал отчеты об ошибках! Мы выявили проблему и приносим извинения за причиненные неудобства. Тем временем вы можете избежать этой проблемы, установив по умолчанию пользователя. В терминале введите следующую команду:

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

Затем перезапустите Xcode и повторите проверку подлинности учетных записей Apple ID в панели предпочтений учетных записей, если это необходимо. С этого момента вы сможете уйти и перезапустить Xcode без необходимости повторной проверки подлинности каждый раз.

Ответ 2

Пройдя длинный список вещей, чтобы попытаться исправить эту ошибку (созданный новый пользователь, включение/выключение 2FA, вход в/из iCloud, восстановление брелка, копирование пользователя с другой машины и т.д.), Я безуспешно пытался сделать длинный снимок.

Учитывая, что я вижу эту проблему только на свежих установках High Sierra, с новой установкой последнего Xcode (обновления кажутся прекрасными), я задавался вопросом, видима ли проблема в предыдущих версиях.

Поскольку у меня был Xcode 8.3.3.xip в сети, я распаковывал, устанавливал и запускал. У него была такая же проблема с истекшим сеансом, что и я снова зашел (процесс был немного неуклюжим, но работал), а затем вышел из Xcode и перезапущен. После второй попытки не только сессия сохранялась в версии 8.3.3, но и к моему удивлению, теперь версия Xcode 9.3 также отлично работает.

Поэтому мое предложение - перейти в Apple Developer и войти в систему, а затем перейти к разделу "Больше загрузок" и получить предыдущую версию и попробовать это. Файл 8.3.3, который я использовал, можно загрузить оттуда. Я не удалял свою существующую установку 9.3, я просто переименовал распакованную версию 8.3.3 в альтернативное имя и одновременно сидел рядом друг с другом в/Приложения, позволяя мне многократно запускать каждую по очереди для тестирования.

Ответ 3

Apple только что выпустила Xcode 9.3.1, которая должна исправить эту проблему. Из примечаний к выпуску:

Исправлена ошибка, из-за которой пользователю приходилось неоднократно регистрироваться с помощью Apple ID. (39573406)

Ответ 4

Поскольку моя учетная запись была новой здесь, я не могу просто добавить фиксацию для поддержки @TendrilSix.

Ответ TendrilSix выше может решить проблему. Если вы столкнулись с той же проблемой, просто установите Xcode 8.3.3 и войдите в свою учетную запись dev внутри Xcode 8.3.3.

Самая важная вещь,

Если Apple не решит эту проблему в будущем. НЕ УСТАНАВЛИВАЙТЕ XCODE 8.3.3.

Мы обнаружили на наших машинах dev, эта проблема произошла только на Mac, который когда-то был установлен как Xcode 8.x, так и 9.x.

После удаления Xcode 8.3.3, учетные записи для учетных записей пользователей только в Xcode 9.x будут иметь значение "Срок действия вашей сессии истек. Пожалуйста, войдите".

Если у mac один раз были установлены как 8.3.3, так и 9.3.

Доступен только вход в систему 8.3.3, поведение входа в систему добавит 17 элементов в Keychain. Включая "Xcode-Token" и "Xcode-AlternateDSID"

Вход 9.3 будет создавать только 15 элементов в Keychain. Отсутствует "Xcode-Token" и "Xcode-AlternateDSID"

Если обновление Mac с Xcode 7.x 8.x 9.x и никогда не имеет двух или более разных версий Xcode, установленных вместе.

Вход в систему 9.3 создаст 17 элементов в Keychain, а dev-аккаунт будет работать правильно.

Ответ 5

Я знаю, что прошло несколько месяцев с тех пор, как это было опубликовано, но я нахожусь на XCode 10.1 из новой установки High Sierra 10.13.6, и у меня та же проблема. Я попытался изменить пароль своей учетной записи, включить двухфакторную аутентификацию и даже полностью удалить/переустановить XCode из AppStore, но ничего не работает. Я также удалил ключ XCode из доступа к цепочке для ключей (там был только один ключ со словом xcode в нем).

Я также попробовал решение

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

Но это тоже не работает. Я пробовал кодовое обозначение --verify XCode.app, но в командной строке не отображалось.

Кажется, что каждый раз, когда я закрываю XCode, в следующий раз, когда я открываю его, мне нужно перейти в "Настройки" → "Учетные записи" и повторно ввести свой пароль, чтобы войти в систему, поскольку XCode сообщает, что моя сессия истекла. Это раздражает, так как мешает мне выполнять действия, когда я должен войти в систему при сборке из Unity Engine.

Если у кого-то есть более свежее решение, не стесняйтесь, дайте мне знать, вы будете моим великим спасителем!

Спасибо!