Ошибка кодового знака: идентификатор сертификата "iPhone Developer: My Name (xxx)" появляется более одного раза в цепочке ключей

Я застрял в этой ошибке:

Ошибка кодового знака: идентификатор сертификата "iPhone Developer: My Name (xxx)" появляется более одного раза в цепочке ключей. Инструмент codeign требует наличия только одного.

Я пытаюсь обновить сборку нового CSR, удалить старый сертификат, создать новый, снова и снова и снова, и эта ошибка все еще присутствует

в цепочке ключей Я не вижу дублированный сертификат, и если я удалю только один, который я вижу в цепочке ключей, Xcode жалуется, что сертификат не может быть найден...

Ответ 1

Xcode 4.3 теперь ищет все связки ключей для подписания сертификатов, но это увеличивает частоту ошибки сборки:

Идентификатор сертификата (x) появляется более одного раза в цепочке ключей...

Действия Apple по его устранению: " Как устранить ошибку CodeSign: идентификатор сертификата появляется более одного раза в цепочке ключей?"

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

1) Доступ к брелокам > Правкa > Список связок ключей, снимите флажок "Общий" для брелка для входа.

2) Затем, если вы вернетесь в список ключей, вы обнаружите, что логин-логин по-прежнему отмечен как Shared, создайте резервную копию следующих файлов, а затем удалите их, если они существуют:

/Library/Preferences/com.apple.security-common.plist
~/Library/Preferences/com.apple.security.plist

3) Повторите попытку сборки.

Ответ 2

У меня была такая же проблема после обновления XCode до 4.3. Удаление сертификатов и профилей подготовки ничего не изменило. В любом случае дубликатов или истекших не было.

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

Ответ 3

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

Ответ 4

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

Ответ 5

Если вы уже удалили все остальные сертификаты разработчика в своем KeyChain, и ошибка все еще возникает, попробуйте удалить все старые/неиспользуемые ключи (закрытый ключ) с вашим именем. Единственное, что необходимо, - это тот, у которого есть маленькая "icon-enhancer-icon" рядом с его именем. Сохранение этого и удаление остальных исправили его для меня.

Ответ 6

У меня была та же проблема. Я проверил каждый связанный с ним вопрос, который я смог найти на SO, и последовал за его шагами - но не повезло. Он продолжал говорить мне, что мой дистрибьюторский сертификат появился не один раз, но я мог видеть, что он появился только один раз. Я неоднократно отозвал сертификаты и закрыл X-Code, но оказалось, что существует "скрытый" сертификат. У меня был старший сертификат распространения, который не был в цепочке логина. Это было в неназванном брелка. Когда я удалил этот, он сработает! Так что стоит взглянуть на доступ к keychain полностью!

Ответ 7

После перехода на новую версию mac, у меня возникла эта проблема. Я попытался удалить дубликаты и проверить, что не было скрытых истекших, но ошибка сохранялась. Решение, которое сработало для меня, заключалось в том, чтобы скопировать пару keychain из старого mac и импортировать его в новый Mac. Затем проблема была решена следующим образом:

  • выберите сертификат в Access Keychain Access
  • Разверните стрелку, чтобы увидеть закрытый ключ
  • Дважды щелкните закрытый ключ
  • Нажмите "Контроль доступа"
  • Выберите "Разрешить всем приложениям использовать этот элемент"
  • Нажмите "Сохранить изменения"

Для меня я смог успешно восстановить приложение.

Надеюсь, что кто-то помог: -)

Ответ 8

Это иногда работает для меня:

  • Удалите все дубликаты, которые вы видите из брелка (обычно этот шаг сам по себе не помогает мне)
  • Затем также удалите (или, по крайней мере, временно переименовать/переместить папку/Library/Разработчик/Xcode. Xcode хранит там старый дерьмо/кеш. Я предполагаю, что существуют профайлы. Waste em. (Обратите внимание, что путь к этой папке изменяемые в префиксах Xcode, поэтому, если вы изменили путь, перейдите туда и удалите ненужные файлы.)

Затем перестройте. Работал для меня в эту минуту после получения этой ошибки в миллионный раз.

Ответ 9

Попробуйте удалить сертификаты из организатора xcode.

Ответ 10

Решение:

В цепочке ключей: Ive обнаружил, что если вы переключитесь на представление "Все элементы", с левой стороны, удаление, похоже, будет работать каждый раз. Но, возможно, это была просто слепая удача. Даже если он терпит неудачу, действие переключения между "Всеми элементами" и "Мои сертификаты", похоже, заставляет KA обновлять представление и сообщает вам, что удаление еще "работает":

ссылка:

http://viggnesh.com/blog/problem-faced/

Ответ 11

У меня была эта проблема с XCODE 4.5, потому что Организатор все еще держал сертификаты разработчика.

  • Удалены все профили подготовки из Organizer
  • Удалены все сертификаты разработчика из KeyChain. Также покажите истекший список.
  • Закрыть XCode
  • Загрузить сертификат разработчика
  • Установить профили Provisioning
  • Очистить сборку
  • Проверьте список сертификатов органайзера и убедитесь, что у вас есть
  • Проверьте брелок, чтобы убедиться, что у вас есть один сертификат.
  • Архив

Ответ 12

Исправлено это с помощью Organizer → Teams (выберите вашу команду) → Обновить (в правом нижнем углу).

Ответ 13

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

Ответ 14

Просто переместите другого царя. от "login" до "system"... и не удаляйте его... Поверьте мне