Почему Xcode автоматически устанавливает (дубликат и истек) сертификат в цепочке ключей?

Возможный дубликат:
xCode 4 -reinstalls keychain certs, которые я удаляю

Вопрос гласит все в двух словах.

При создании проекта в Xcode я получаю сообщение об ошибке на шаге проверки:

CodeSign error: Certificate identity 'iPhone Developer: xxxxx' appears more than once in the keychain. The codesign tool requires there only be one.

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

Закройте Xcode, перезапустите, посмотрите Keychain и TA-DA! снова появляется сертификат с истекшим сроком действия.

Мне кажется, что я вернулся на зараженную вирусами машину Windows.

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


Edit:

Я думаю, что это связано с рассмотрением того, что xcode делает из брелка по какой-либо причине. Затем xcode решает установить сертификат на основе проверки брелка, хотя это ошибочное решение. Я мог бы решить эту проблему, если бы провел 24-48 часов, но я могу продолжать работать, не покидая Xcode.:)

Ответ 1

У меня был такой же опыт работы с XCode 3 (не 4), и удаление старого сертификата в Keychain только не получилось.

Я также добавлю к удалить все мои старые профили подготовки, используя старый сертификат, с помощью Organizer, затем закройте XCode, удалите старый сертификат из Keychain и перезапустите XCode.

Теперь это работает нормально!

Ответ 3

Не уверен, что вызвало это для вас, но две вещи попробовать:

Во-первых... Xcode исторически имел некоторые ошибки в этой области, которые вылечиваются только после того, как вы удалили Xcode, удалив материал из брелка, перезагрузив OS X (действительно - не знаю, что в XCode, который может пережить перезапуск приложения, как это произошло), а затем перезапустить XCode. Я не видел ни одного из них уже более года, но может быть ошибкой регрессии?

Во-вторых... хотя он не обрабатывает сертификаты, если вы еще не используете, вы должны использовать утилиту настройки iPhone (http://support.apple.com/kb/dl851) для части профилей подготовки, если это возможно - он часто предоставляет исправления для ошибок Xcode в этой области.

О, в-третьих (никто не ожидает испанский инквизиции): если вы проверяете консоль, она иногда содержит дополнительную информацию об отладке/ошибке для инструментов командной строки в Xcode, которые имеют дело с сертификатами и подписью cert (включая сообщения об ошибках, которые больше нигде не появляются)

Ответ 4

Удалите все профили профилей, которые понравились сертификату с истекшим сроком от органайзера.

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

Ответ 5

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

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