Mac OS X хочет использовать системную связку ключей при компиляции проекта

93

Когда я компилирую свой проект Xcode, меня просят ввести имя пользователя и пароль системного администратора. Все сообщение

Mac OS X хочет внести изменения. Введите имя и пароль администратора, чтобы разрешить это. Mac OS X хочет использовать системную связку ключей.

У кого-нибудь есть решение для этого?

Сингх
источник

Ответы:

248
  1. Откройте доступ к связке ключей.
  2. В верхнем левом углу разблокируйте связку ключей (если она заблокирована).
  3. Выберите системный брелок в верхнем левом углу.
  4. Найдите свой сертификат распространения и щелкните треугольник раскрытия.
  5. Дважды щелкните «Закрытый ключ» под своим сертификатом распространения.
  6. Во всплывающем окне перейдите на вкладку Контроль доступа.
  7. Выберите «Разрешить всем приложениям доступ к этому элементу».
  8. Сохраните изменения.
  9. Закройте все окна.
  10. Запустите приложение.
PVCS
источник
3
Я не нахожу ни одного раскрывающегося списка сертификатов распространения. где это найти?
Ananth Srinivasan
4
@AnanthSrinivasan, PVCS означает просто список учетных записей, перечисленных в главном окне. Дважды щелкните учетную запись, которая заставляет вас ввести имя администратора и пароль.
crazyDiamond
Это также единственный хороший способ убедиться, что он работает на сервере автоматической сборки, не отвлекаясь от ввода учетных данных.
Бен Бутцер,
4
За этот ответ ты заслуживаешь большой жопы.
Miiite
1
Я обнаружил, что на El Capitan вам нужно дважды щелкнуть закрытые ключи, соответствующие формату yourhostname.domain.identity, а затем выполнить шаги 6-8.
Jason D
22

Проблема заключается в сертификате разработчика на связке ключей, который находится в разделе «Система» на левой панели, который всегда заблокирован и требует моего пароля для разблокировки!

Так что просто переместите сертификат разработчика в «логин», который всегда разблокирован. Теперь ваша проблема решена.

поразить шах
источник
1
Это помогло мне, за исключением того, что я не мог переместить связку ключей в «вход». Однако я думаю, что удаление сертификата из системной цепочки ключей решает эту проблему.
goelakash 03
Это подходит только для построения из графического интерфейса Xcode, когда вы строите из CLI (например, в среде CI), ключ и сертификат должны быть в системной цепочке ключей.
RAM237 06
Большой! работал у меня. Мой сертификат был в «Системе», переместил его в «Вход».
лал
У меня ничего не работало, кроме этого. Обратите внимание, что я не мог его переместить, мне пришлось удалить и просто перетащить сертификат вручную в «Вход»
Лирик
7
  1. Открытый доступ к связке ключей

  2. Нажмите Система на левой панели.

  3. Разблокируйте системный брелок вверху слева (если он заблокирован)

  4. Отсортируйте элементы системы по типу так, чтобы ключи были вверху

  5. Ищите закрытый ключ, который постоянно запрашивает пароль

  6. Дважды щелкните по нему и выберите Контроль доступа.

  7. Выберите «Разрешить всем приложениям доступ к этому элементу»

  8. Сохраните изменения, заблокируйте системную связку ключей и выйдите из приложения Связка ключей.

  9. Перезапустите приложение, которое постоянно просит изменить вашу связку ключей.

эмоциональность
источник
На шаге 7 рекомендуется разрешить только определенные приложения, которым вы пытаетесь предоставить доступ. Потому что безопасность.
Mike Rapadas 06
1
Чем это отличается от ответа, предоставленного годами ранее ?
grg
1
Когда я ответил на него, ответ был двухлетней давности, и ответ не сработал для меня, поэтому я записал шаги, которые я предпринял, чтобы заставить его работать, отсюда 5 положительных голосов. Не приходите сюда и обновляйте его ответ, а затем спросите меня, почему мой другой ... Если бы он был таким же, я уверен, что все проголосовали бы против него, как и вы ..
emotality
1
Мне не удалось сохранить изменения на шаге 8. Я ввожу пароль администратора (спрашивает меня дважды), однако, когда я повторно открываю ключ, изменения не сохраняются! Почему это так?
Даниэль
5

У меня возникла эта проблема, потому что у меня были дубликаты сертификатов в моем логине и системных связках ключей. Открытие Keychain Access и удаление всех сертификатов из системы, которые также были в логине, решили эту проблему. Надеюсь это поможет.

Джефф Эймс
источник
Это подходит только для построения из графического интерфейса Xcode, когда вы строите из CLI (например, в среде CI), ключ и сертификат должны быть в системной цепочке ключей. На одном Mac у меня такая же ситуация: дублируются логин и системный брелок, и все работает нормально, но не на другом по какой-то причине ...
RAM237 06
3

Я обнаружил, что проблема связана с подготовкой профилей. Я удалил все предыдущие профили подготовки, а затем переустановил нужный.

Сингх
источник
2

В моем случае я пошел в Связку ключей, выбрал «система» в «Связки ключей» (вверху слева). Затем для каждого элемента: щелкните правой кнопкой мыши, «Получить информацию», «Контроль доступа» и добавьте Xcode в список «Всегда разрешать доступ для этих приложений:».

Krafter
источник
2

Переместите свой закрытый ключ из системы для входа в систему для доступа к связке ключей. Затем переместите сертификат разработчика в логин. Это сработало для меня.

Пустынная роза
источник
1

Я последовал решению, аналогичному тому, что сделал @krafter, но вместо того, чтобы предоставить доступ ко всему в системной цепочке ключей, мне нужно было только добавить xcode в профиль обеспечения в цепочке для ключей -> система -> «ваш профиль обеспечения» -> получить информацию -> Контроль доступа, затем просто добавил xcode. Это то, что сработало для 4.6

SuperDave
источник
1

Параметры контроля доступа больше не сохраняются для закрытых ключей, которые хранятся в системной связке ключей, поэтому попытка добавить Xcode в белый список у меня не сработала.

Чтобы сохранить изменения контроля доступа, мне пришлось скопировать закрытый ключ + сертификат в цепочку ключей входа. Благодаря этому Xcode не беспокоил меня, когда я подписывал архивы кода для распространения.

Обратите внимание, что Xcode остановит распространение, если параметры доверия сертификата изменены (например, всегда разрешать подпись кода); вы должны оставить их как Системные по умолчанию.

Я надеюсь, что есть лучшее решение, чем это, потому что это кажется неправильным. Но пока это работает.

Натан Хосселтон
источник
0

Да - запускайте XCode только с правами администратора. Ему требуются права администратора для выполнения целого ряда задач, установок, сеансов отладки и т. Д.

Ставаш
источник
как я могу изменить настройки xcode, чтобы он работал с предварительными настройками администратора?
Сингх
Я имею в виду, запустить его от пользователя, который определен как администратор.
Ставаш
0

Вы уверены, что там написано «Mac OS X», а не что-то связанное с инструментами разработчика?

Это нормально, если Инструменты разработчика хотят включить режим разработчика на вашем Mac, таким образом, вам не нужно вводить пароль администратора каждый раз, когда вы начинаете отладку своего приложения в симуляторе каждый раз после каждого запуска Xcode.

Но если вы не включили режим разработчика, когда он предлагался Xcode, будьте готовы к тому, что Xcode будет запрашивать пароль администратора каждый раз, когда вы запускаете отладку в симуляторе после каждого запуска Xcode.

Алексей Мьяликс
источник
да, там написано MAC OS X, и когда я компилирую сборку для симулятора, он не показывает мне это сообщение, и когда я запускаю любой проект на устройстве, он показывает мне сообщение
Сингх
Я обнаружил, что проблема связана с подготовкой профилей. Я удалил все предыдущие профили подготовки, а затем переустановил один, необходимый для решения проблемы,
Сингх,
Я согласен с @developersaremad. У меня есть решение ... Спасибо
kb920
0

Вам необходимо добавить свое имя пользователя OSx в _developerгруппу. Работал у меня.

sudo dscl . append /Groups/_developer GroupMembership <username>
Сародж
источник
0

Кажется, что Xcode не обновляет выбор команды, поэтому повторный выбор его на общей вкладке целей решил это.

Moran77
источник