Повторяющееся всплывающее окно: Xcode хочет получить доступ к ключу com.apple.dt.XcodeDeviceMonitor в вашей цепочке ключей

83

Начиная с MacOS Sierra, я начал периодически получать это всплывающее окно из XCode, даже после нажатия «Всегда разрешать».

Выскакивать

Я попытался удалить элемент com.apple.dt.XcodeDeviceMonitor в Связке ключей. Это восстанавливает ключ, но не устраняет проблему.

Это открытая тема для обсуждения на форумах Apple , но, похоже, ни у кого нет решения.

Эндрю Шрайбер
источник
Может быть, с префиксом перепутались? Запустите lsof, и пока появится диалоговое окно, посмотрите, не открыты ли в Xcode какие-либо «подозрительные» файлы. Затем выйдите из Xcode, удалите файл и ключ и повторите попытку.
Колин Барретт
1
Кто-нибудь знает, зачем Apple вообще нужен доступ к этому ключу?
Флориан

Ответы:

104

Публикация этого решения для Xcode 8, потому что ни у кого больше нет:

  1. Откройте доступ к связке ключей.
  2. Найдите XcodeDeviceMonitor.
  3. Перетащите элемент в Системную связку ключей слева.
  4. Введите пароль администратора.

Это наконец исправляет.

Malhal
источник
1
Намного безопаснее, чем выбрать Разрешить всем приложениям доступ к этому элементу . Спасибо.
Боб
2
Это должен быть правильный ответ. Это заглушило ошибку даже после перезапуска. Благодаря!!
Майк Кричли
@jjxtra XcodeDeviceMonitor не появлялся у меня первые несколько раз. Просто продолжайте закрывать всплывающее окно (я пробовал запретить / разрешить / всегда разрешать), и оно в конечном итоге появится.
olivaresF
Моя проблема была решена после выполнения этих шагов. Спасибо :)
Mohnish Hirudkar
77

откройте [ доступ к связке ключей ]> введите " связке xcode » в области поиска> дважды щелкните [ com.apple.dt.XcodeDeviceMonitor ]> щелкните [ контроль доступа ]> выберите первый вариант [ разрешить всем приложениям доступ к этому элементу ]

Не забудьте нажать «Сохранить изменения»!

Надеюсь, поможет.

Нажмите «Разрешить всем приложениям доступ к этому элементу», затем нажмите «Сохранить изменения».

Linc
источник
2
У меня это не сработало. Всплывающее окно вернулось при следующем перезапуске, и Контроль доступа вернулся к «Подтверждать перед разрешением доступа». Xcode и XcodeDeviceMonitor в любом случае находятся в списке «Всегда разрешать доступ этим приложениям», так что не должно было быть необходимости разрешать все приложения.
Джим Лиск
То же самое ... всплывающее окно продолжает возвращаться. Кто-нибудь с постоянным решением?
ZS
1
Вы не забыли нажать кнопку «Сохранить изменения» и ввести свой пароль?
Hobbes the
1
Когда я ищу xcodeв Связке ключей, он ничего не находит, но я все равно получаю это всплывающее окно. 🤷🏻‍♂️
Clifton
1
Обновить. Я думаю, что единственное решение, которое навсегда избавляет от всплывающего окна, - это решение, приведенное ниже, от malhal ... не видел всплывающего окна с тех пор, даже после перезапуска и намеренного сбоя моего приложения с исключением массива вне границ. Тем не менее, я кое-что узнал из этого ответа для использования в будущем. Благодарю.
Майк Кричли
11

Для меня сработало следующее (под управлением macOS 10.12.1 и XCode 7.3).

Обратите внимание, что проблема с другими решениями заключается в том, что они работают с (временной) записью цепочки ключей входа, которая удаляется при выходе из XCode, поэтому решение, похоже, состоит в том, чтобы вместо этого создать запись в цепочке ключей системы.

Я попытался использовать Keychain Access, чтобы переместить запись из логина в системную цепочку для ключей, но это не удалось с различными неясными ошибками (например, «Произошла ошибка. Невозможно добавить элемент в текущую цепочку для ключей»)

Вместо этого я использовал команду безопасности, чтобы создать новую запись в цепочке ключей System, которая (почти) идентична временной.

Единственное отличие - это пароль, который я не удосужился извлечь (и я не уверен, важно ли это).

Откройте Терминал, вставьте и выполните следующую команду (после подходящего редактирования, если XCode находится не в обычном месте):

sudo security add-generic-password \
-s 'com.apple.dt.XcodeDeviceMonitor' \
-a session-token \
-p anyoldstring \
-T /Applications/Xcode.app \
-T /Applications/Xcode.app/Contents/Developer/Library/Xcode/Tools/XcodeDeviceMonitor \
/Library/Keychains/System.keychain

Отказ от ответственности - моей единственной целью здесь было предотвратить раздражающее предупреждение.
Понятия не имею, сломает ли это что-нибудь.
Вы возитесь с системной связкой ключей: что может пойти не так?

peegee123
источник
1
Это сработало, в то время как никакое другое решение не помогло. Мне пришлось немного изменить пути к файлам, так как мой Xcode находится в папке с именем Xcode, но в остальном это сработало! Благодарю.
Эндрю Смит
1

Я сообщил об этом Apple как об ошибке, и после нескольких предложений, таких же, как некоторые из упомянутых здесь, которые не работали, они вернулись со следующим, что сработало:

"Приносим извинения за проблему. Мы рассмотрим это подробнее. А пока, если вам не нужен датчик iCloud, вы можете временно отключить его, выполнив следующие действия:

  1. Перейдите в Terminal.app.
  2. Введите это, чтобы включить
    значения по умолчанию для пользователя, напишите com.apple.dt.Xcode iCloudGaugeDisabled -bool YES
  3. Перезапустить Xcode "
Easiwriter
источник
0

Эта проблема снова возникла у меня прошлой осенью. Я думаю, что проблема может быть связана с дырой в безопасности, которая была у Apple, где учетная запись пользователя root не была защищена паролем. Я сбросил свой пароль для учетной записи пользователя root (на тот же пароль, что и раньше). В то время я не заметил этой связи, но после прочтения этого пункта поддержки я подозревал, что это может быть проблемой.

https://support.apple.com/en-us/HT201609

Я сбросил свой пароль для связки ключей входа (снова на тот же пароль), выполнив следующие действия, и проблема с тех пор исчезла.

Надеюсь это поможет.

Johnrechd
источник