Ошибка подписи кода: идентификация сертификата «iPhone Developer: My Name (xxx)» появляется в цепочке для ключей более одного раза - PullRequest
25 голосов
/ 20 февраля 2012

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

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

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

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

Ответы [ 14 ]

19 голосов
/ 25 февраля 2012

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

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

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

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

1) Доступ к цепочке для ключей> Редактировать>Список цепочек для ключей, снимите флажок «Shared» для цепочки для ключей входа в систему.

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

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

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

5 голосов
/ 21 февраля 2012

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

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

2 голосов
/ 25 апреля 2013

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

2 голосов
/ 28 февраля 2012

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

2 голосов
/ 20 февраля 2012

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

1 голос
/ 23 августа 2012

Иногда это работает для меня:

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

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

1 голос
/ 13 августа 2012

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

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

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

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

1 голос
/ 14 апреля 2012

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

0 голосов
/ 11 сентября 2013

Просто переместите другой сертификат.из "логина" в "систему" ... и не удаляйте его ... Поверьте мне

0 голосов
/ 13 августа 2013

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

...