XCode 4 -reinstalls keychain certs, которые я удаляю

Я получаю эту ошибку:

Ошибка CodeSign: идентификатор сертификата "Разработчик iPhone: XXX" появляется больше чем один раз в брелок. Инструмент "Кодикс" требует, чтобы один.

Сначала я, однако, не беспокоюсь, я просто зайду в брелок и удалю дубликат (более старый), который я сделал. Я вернулся, закрыл xcode, снова открыл xcode и проект, ту же ошибку. Я даже для себя. Вернитесь в цепочку ключей и сертификат снова. Я удаляю оба сертификата, повторяю и уведомляю, когда проект загружается, два сертификата, которые я удалил, снова попали в цепочку ключей.

После долгих поисков я убедился, что у меня не было сертификата в системном брелках, которого я не знал. Также сделал чистый и перестроенный. Когда у меня были дубликаты с xCode 3, я мог просто очистить дубликат связки ключей, и я был хорош. Но с xCode 4 он буквально просто переустанавливает их, когда я открываю проект. Я даже удалил все .cer файлы в моей системе, из-за которых вы могли бы их вытащить.

Любые предложения?

Ответ 1

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

Ответ 2

У меня была такая же проблема, и вышеприведенные решения не решили мою проблему (ну почти).

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

В итоге оказалось, что был сертификатом в системной цепочке ключей, с expired и поэтому был скрыт по умолчанию в списке.

Убедитесь, что вы видите сертификаты с истекшим сроком действия в KeyChain

Для этого:

  • Открыть доступ к брелокам
  • Нажмите меню "Вид"
  • Нажмите "Показать истекшие сертификаты"
  • , затем найдите и удалите истекшие сертификаты разработчика

Ответ 3

XCode 4 имеет новую функцию "Автоматическое предоставление устройств". Он расположен в организаторе в профилях библиотеки/профилей. Если вы включили эту функцию, она автоматически загрузит ваши профили обеспечения с сервера подготовки разработчиков Apple, и вы получите ошибку дублирования. Самый простой способ исправить это - удалить все профили подготовки и нажать "Обновить" для "Автоматическое предоставление устройств". Это загрузит ваши профили обеспечения с сервера и устранит вашу проблему.

Ответ 4

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

  • создайте новую цепочку ключей, назовите ее "expired" и переместите ТОЛЬКО сертификат с истекшим сроком действия.
  • удалить вновь созданный "просроченный" keychain, который содержит ТОЛЬКО сертификат с истекшим сроком действия, по запросу выберите "Удалить ссылки и файлы".

сертификат с истекшим сроком действия исчезает вместе с цепочкой ключей. отлично работал у меня.

Ответ 5

  • Удалите все профили Provisioning из XCode Organizer;
  • Удалить старые сертификаты разработчика из Access Keychain Access;
  • Создайте профили Provisioning только с правильным сертификатом разработчика;
  • Загрузите и установите новые профили Provisioning Profiles;

- EDIT -

Объединить ответ @Codezy и комментарий @iphone007.

Ответ 6

Удаление профилей подготовки в библиотеке Organizer, кроме того, вы должны удалить сертификат разработчика iPhone в Keychain Access. (Название сертификата, вероятно, похоже на "iPhone Developer: XXXXX..." и указано красным значком X, срок действия которого истек)

Ответ 7

Я потратил на это полдня и наконец нашел решение

  • Открыть KeyChain Access.app
  • Выберите "Система" в меню "Брелки" в левой части экрана приложения Keychain.
  • Выберите "Сертификаты" в нижнем меню "Категория"
  • Удалите все старые сертификаты.

Затем закройте Keychain.app и перейдите к Xcode → Organizer

  • Удалите все профили Provisioning Profiles в меню Library
  • Удалить все профили Provisioning Profiles в меню Devices
  • Нажмите кнопку "Обновить" в меню "Библиотека" → "Профиль предоставления"
  • Добавить необходимые вам устройства на устройство

Снова создайте приложение:)

Ответ 8

Для потомков, здесь стратегия, чтобы обойти эту проблему в нашей автоматической сборке script:

  • Перед созданием переместите каталог ~/Library/MobileDevices/Provisioning Profiles в сторону
  • Проверьте, работает ли Конфигурация iPhone, и закрывайте его (сертификаты всегда появляются снова, если это приложение открыто). В XCode 4.1 вам также нужно закрыть организатор.)
  • Запустите создание
  • Переместите каталог Provisioning Profiles назад
  • Profit?

Ответ 9

Я пробовал все предлагаемое здесь, но ничего не работало для меня, кроме повторного внедрения XCode 4.3, волшебным образом разрешившего дело.

Ответ 10

Выяснил очень простой способ исправить это в 4.6.1. Вы можете сделать это без перезапуска или удаления каких-либо профилей!

При использовании Keychain Access и вашего проекта Xcode:

  • В Xcode откройте "Организатор" - "Устройства" и выберите "команду" с помощью дублирующий сертификат.
  • Переключиться на доступ к цепочке ключей и удалить старые дубликаты сертификатов. Примечание. Убедитесь, что вы включили "показывать истекшие сертификаты", чтобы не пропустить.
  • Сертификаты исчезнут из профиля команды в организаторе Xcode.
  • Очистить проект и построить.

Надеюсь, что это поможет!

Ответ 11

вышеуказанный метод не работает для моего случая

наконец, я иду на брелок

и найдите ключ, введя имя

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

Это действительно расстраивает, и я не знаю, действительно ли это ошибка... действительно утомительная.

Ответ 12

Цитируя ответ на дубликат этого вопроса, некоторые ошибки Xcode в этой области могут быть решены только путем перезапуска OS X.

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

Ответ 13

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

Ответ 14

Другая причина, по которой xcode продолжает устанавливать ваш сертификат, заключается в том, что вы не удаляли ключ, а только сертификат. Вам нужно удалить закрытый ключ (и соответствующий открытый ключ), а также сертификат в цепочке ключей, иначе xcode переустановит сертификат.

Отметьте Чтобы удалить сертификаты разработки и распространения из вашей связки ключей

Ответ 15

Только что установил Xcode 4.6.1 и снова начал эту проблему. В последний раз прошло много времени. Я удалил старые профили подготовки и сертификаты, но все равно не смог их построить.

На этот раз выясняется, что у меня было два сертификата, которые были указаны для меня в учетной записи команды портала разработчика. Первый был истек, второй - нет. Xcode продолжал захватывать первую найденную во время обновления (или, возможно, и то, и другое).

Я удалил оба сертификата из keychain, затем вручную загрузил хороший файл с портала Apple и вручную добавил его в цепочку ключей. Теперь я могу построить снова.

(И я отправил администратору команды запрос на удаление старого сертификата.)

Ответ 16

  • Удалить ~/Library/Разработчик/Xcode
  • Очистить проект

построить...