Xcode 9.3 сеанс истекает каждый раз, когда я закрываю и снова открываю Xcode
Я вижу, что мой аккаунт показывает "Ваша сессия истекла. Пожалуйста, войдите в систему." в XCode->Preferences->Accounts каждый раз, когда я перезапускаю XCode, даже если я успешно захожу в промежуточный перезапуск. Кроме того, моя командная строка xcodebuild терпит неудачу, потому что это говорит, что сеанс пользователя истек.
Мы попытались удалить и повторно добавить пользователя, но это не решило проблему. Мы отключили двухфакторную аутентификацию и включили ее снова, и это также не решило проблему, хотя мы видели, что это разрешает вход в систему без двухфакторной аутентификации на некоторое время, пока мы не выключим его и не включим снова., а затем он снова начал запрашивать код.
кто-нибудь видел такое поведение?
4 ответа
Xcode 9.3 теперь использует группы доступа цепочки для ключей для хранения ваших учетных данных Apple ID в цепочке для ключей. При запуске это пытается перенести любые существующие учетные данные из предыдущих версий XCode в группу доступа. В некоторых случаях такая миграция не выполняется.
Вам, вероятно, не нужно устанавливать более старые версии Xcode, чтобы обойти это. Если вы удалите свои учетные записи из Xcode; выйти из Xcode; открыть доступ к связке ключей; найти и удалить любые записи "Xcode-Token" или "Xcode-AlternateDSID"; перезапустить Xcode; и добавьте свои учетные записи обратно, тогда ваши учетные записи должны работать правильно в Xcode 9.3 с этого момента.
Если вы способны воспроизвести эту проблему, я хотел бы попросить вас сообщить об ошибке на bugreport.apple.com и прикрепить системный диагноз с вашего компьютера.
Обновить
Спасибо всем, кто подал сообщения об ошибках! Мы определили проблему и приносим извинения за причиненные неудобства. А пока вы можете избежать этой проблемы, установив пользовательские настройки по умолчанию. В Терминале введите эту команду:
defaults write com.apple.dt.Xcode DVTDeveloperAccountUseKeychainService -bool NO
Затем перезапустите XCode и заново аутентифицируйте свои учетные записи Apple ID на панели настроек "Учетные записи", если это необходимо. С этого момента вы сможете выйти и перезапустить Xcode без необходимости повторной аутентификации каждый раз.
Пройдя длинный список вещей, чтобы попытаться исправить эту ошибку (безуспешно, безуспешно пытаясь сделать это, я попытался исправить ситуацию (создал нового пользователя, включить / выключить 2FA, выполнить вход / выход iCloud, восстановить цепочку ключей, скопировать пользователя с другого компьютера и т. Д.).
Учитывая, что я вижу эту проблему только на новых установках компьютеров High Sierra с новой установкой последней версии XCode (обновления кажутся хорошими), я подумал, видна ли проблема в предыдущих версиях.
Поскольку у меня был Xcode 8.3.3.xip в сети, я распаковал, установил и запустил. У него была та же проблема с истекшим временем сеанса, поэтому я снова вошел в систему (процесс был немного неуклюжим, но работал), а затем вышел из Xcode и перезапустился. После второй попытки сеанс не только сохранился в версии 8.3.3, но, к моему большому удивлению, версия 9.3 для Xcode теперь тоже работает нормально.
Поэтому я предлагаю перейти к Apple Developer и войти в систему, а затем перейти к разделу "Дополнительные загрузки", получить предыдущую версию и попробовать ее. Файл 8.3.3, который я использовал, можно скачать оттуда. Я не удалил свою существующую установку 9.3, я просто переименовал распакованную версию 8.3.3 в альтернативное имя, и оба они сидели рядом друг с другом в /Applications, позволяя мне многократно запускать каждую по очереди для тестирования.
Apple только что выпустила Xcode 9.3.1, который должен решить проблему. Из примечаний к выпуску:
Исправлена ошибка, из-за которой пользователю приходилось много раз входить в систему со своим Apple ID. (39573406)
Поскольку моя учетная запись была новой, я не могу просто добавить коммит для поддержки @TendrilSix.
Ответ TendrilSix выше может решить проблему. Если вы столкнулись с той же проблемой, просто установите Xcode 8.3.3 обратно и войдите в свою учетную запись dev внутри Xcode 8.3.3.
Самая важная вещь,
Если Apple не исправит эту проблему в будущем. НЕ УДАЛЯЙТЕ XCODE 8.3.3.
Мы обнаружили, что на наших разработчиках эта проблема возникала только на Mac, на которых когда-то Xcode 8.x и 9.x были установлены вместе.
После удаления Xcode 8.3.3 при повторном входе в учетные записи Dev в Xcode 9.x появится сообщение "Срок действия вашей сессии истек. Пожалуйста, войдите в систему".
Если у Mac когда-то были установлены оба 8.3.3 и 9.3.
Доступен был только вход в систему 8.3.3, при входе в систему будет добавлено 17 элементов в связке ключей. Включая "Xcode-Token" и "Xcode-AlternateDSID"
Вход в 9.3 создаст только 15 элементов в связке ключей. Отсутствует "Xcode-Token" и "Xcode-AlternateDSID"
Если обновление Mac с Xcode 7.x 8.x 9.x и никогда не имеет двух или более разных версий Xcode, установленных вместе.
Вход в 9.3 создаст 17 элементов в связке ключей, и учетная запись разработчика работает правильно.