Ответ 1
Ваш сертификат хранится в вашей цепочке ключей. Просто откройте брелок и найдите дубликат, а затем перезапустите XCode.
Когда я получил эту ошибку, я проверил в своем окне организатора и обнаружил дубликат идентификатора в моем имени. Я попытался удалить дублирующийся идентификатор в моем окне органайзера. Но я не могу выбрать или удалить его. Пожалуйста, помогите мне удалить этот дубликат.
Ваш сертификат хранится в вашей цепочке ключей. Просто откройте брелок и найдите дубликат, а затем перезапустите XCode.
Я столкнулся с проблемой, когда старый сертификат продолжает появляться, даже я удаляю его в KeyChain Access. Решение состоит в удалении всех профилей подготовки, которые используют старый сертификат из организатора XCode.
Откройте доступ к брелокам. Под рубрикой в нижней левой части панели вы должны выбрать "Мои сертификаты", На главной панели вы увидите дубликат сертификата. Если он недействителен, на нем будет красный X. Удалите его, перезапустите Xcode, и вам будет хорошо.
В программе "Доступ к брелокам" в меню "Вид" выберите "Показать истекшие сертификаты" (если в пункте меню указано "Скрыть сертификаты с истекшим сроком действия", то вы уже показываете их). Затем проверьте каждую цепочку ключей в списке слева для дубликата сертификата. Кроме того, для каждого ключевого слова обязательно смотрите под "Сертификаты" и "Мои сертификаты" (если есть).
Xcode 4.3 теперь ищет все связки ключей для подписания сертификатов, но это увеличивает частоту ошибки сборки:
Идентификатор сертификата (x) появляется более одного раза в цепочке ключей...
Действия Apple по его устранению: " Как разрешить ошибку CodeSign: идентификатор сертификата появляется более одного раза в цепочке ключей?"
Однако, если вы затронуты ошибкой в цепочке ключей, упомянутой в последней заметке этого руководства, ниже приведено более простое и предпочтительное решение проблемы:
1) Доступ к брелокам > Правкa > Список связок ключей, снимите флажок "Общий" для брелка для входа.
2) Затем, если вы вернетесь в список ключей, вы обнаружите, что логин-логин по-прежнему отмечен как Shared, создайте резервную копию следующих файлов, а затем удалите их, если они существуют:
/Library/Preferences/com.apple.security-common.plist
~/Library/Preferences/com.apple.security.plist
3) Повторите попытку сборки.
После обновления до XCode 4.3 у меня была эта точная проблема. Процесс сборки не сработал, и в KeyChain Access я был уверен, что у меня только один сертификат разработки. В сети не было никакой помощи в том, как ее решить, но мне удалось обойти это следующим способом. Обратите внимание, что я не знаю, будет ли это работать на старой версии Xcode, но лучше всего просто позволить Xcode заботиться обо всем процессе.
Прежде всего, нужно проверить, действительно ли у вас есть дубликаты сертификатов.
Откройте терминал и введите следующую команду:
sudo /usr/bin/security find-certificate -a -Z -c "iPhone Developer" | grep SHA-1
Если вы видите несколько одинаковых хэшей SHA-1, у вас есть дубликаты, и нам нужно их удалить.
В KeyChain Access (я не проверял это, но этот шаг может и не понадобиться):
В XCode Organizer:
В портале обеспечения разработчиков:
Вернуться к XCode Organizer:
Вернитесь в терминал и снова введите команду find-certificate сверху. Вы не должны на данный момент видеть дубликаты.
Следующий шаг - исправить профили обеспечения. Поэтому перейдите на портал обеспечения и измените каждый профиль. Вернитесь назад к организатору Xcode и нажмите кнопку обновления.
После появления профилей вам необходимо повторно связать идентификаторы подписи кода в настройках сборки, чтобы убедиться, что вы не получили ошибку подписи кода.
Теперь ваше приложение должно создавать и запускаться на вашем устройстве.
В моем случае я попытался взглянуть только на логин. Когда я открыл Системные брелки, я обнаружил, что существует старый (истекший) сертификат, и он был дублирован. После удаления дублированного сертификата все работало нормально.
Имела ту же проблему, но удаление устаревшего сертификата было бесполезным, оно появилось снова в момент запуска Xcode!
В Keychain Access, в самой левой панели, под категорией есть "Мои сертификаты", но также и другая запись: "Сертификаты". Я удалил сертификат из "Мои сертификаты", но не смотрел "Сертификаты". Удаление (с истекшим) сертификата из "Сертификатов" тоже решило его для меня.
Если вы все еще не работаете для вас после удаления сертификата, попробуйте сделать Product > Clean
. В моем случае это было необходимо даже после перезапуска системы.
Я продолжаю получать эту ошибку, даже после удаления дубликата. Наконец я сделал следующее:
My Certificates
и Certificates
Это исправляет мою проблему.
в моем случае скрытым истекшим сертификатом был дубликат. Выше подсказки оказались полезными!