Почему 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.
Теперь это работает нормально!
Ответ 2
Возможно, вы захотите попробовать решение из xCode 4 -reinstalls keychain certs, которые я удаляю
С уважением, Фрэнк
Ответ 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?