Xcode 4 - переустанавливает сертификаты цепочки для ключей, которые я удаляю - PullRequest
85 голосов
/ 10 марта 2011

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

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

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

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

Есть предложения?

Ответы [ 16 ]

103 голосов
/ 11 марта 2011

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

33 голосов
/ 26 апреля 2012

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

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

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

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

Для этого:

  1. Открыть Доступ к брелку
  2. Нажмите Просмотреть Меню
  3. Нажмите Показать просроченные сертификаты
  4. , затем найдите и удалите сертификаты разработчика с истекшим сроком
11 голосов
/ 08 апреля 2011

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

7 голосов
/ 23 июня 2011

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

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

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

6 голосов
/ 18 апреля 2011
  1. Удалить все профили обеспечения из XCode Organizer;
  2. Удалить старые сертификаты разработчика из Keychain Access;
  3. Создание профилей обеспечения только с правильным сертификатом разработчика;
  4. Загрузите и установите новые профили обеспечения;

- РЕДАКТИРОВАТЬ -

Слияние ответа @ Codezy и комментария @ iphone007.

2 голосов
/ 31 августа 2012

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

  1. Откройте KeyChain Access.app
  2. Выберите «Система» в меню «Брелки» в левой частиЭкран приложения цепочки для ключей
  3. Выберите «Сертификаты» в меню «Категория»
  4. Удалите все старые сертификаты.

Затем закройте Keychain.app и перейдите в Xcode ->Органайзер

  1. Удаление всех профилей обеспечения в меню библиотеки
  2. Удаление всех профилей обеспечения в меню устройств
  3. Нажмите кнопку «Обновить» в меню библиотеки -> Профиль обеспечения
  4. Добавление необходимых профилей на ваше устройство

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

2 голосов
/ 22 июня 2011

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

1 голос
/ 04 сентября 2013

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

С Keychain Access и вашим открытым проектом Xcode:

  1. В Xcode откройте Организатор - «Устройства» и выберите «команду» с помощью дубликат сертификата.
  2. Переключиться на доступ к связке ключей и удалить старые дубликаты сертификатов. Примечание. Убедитесь, что вы включили «Показать сертификаты с истекшим сроком действия», чтобы не пропустить ни одного.
  3. Сертификаты исчезнут из профиля "team" в Xcode Organizer.
  4. Очистить проект и построить.

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

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

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

1 голос
/ 09 сентября 2011

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

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