Codesign error: дважды появляется идентификатор сертификата - PullRequest
104 голосов
/ 09 мая 2011

Ошибка CodeSign: идентификация сертификата «iPhone Developer: XXXX (12345678)» появляется в цепочке для ключей более одного раза.Инструмент кодирования требует только одного.

Так что я иду в свою цепочку для ключей и удаляю ее.Но я получаю эту ошибку каждый раз, когда перезапускаю Xcode 4, и какое-то приложение добавляет старый сертификат с истекшим сроком действия назад в цепочку для ключей.Есть идеи, почему и какое приложение?

Ответы [ 15 ]

0 голосов
/ 15 августа 2013

Однажды я столкнулся с той же проблемой.И я решил эту проблему, удалив неиспользуемый профиль обеспечения с вкладки «Организатор» в xcode.На самом деле Keychain получит этот сертификат из этого профиля обеспечения, который является либо просроченным сертификатом, либо сборкой по аннулированному сертификату.

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

Вот снимок экрана,

enter image description here

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

0 голосов
/ 08 мая 2013

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

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

Я думаю, что это самый простой способ решить эту проблему.

0 голосов
/ 10 июля 2012

Это очень просто, экспортируйте правильный сертификат на рабочий стол. Удалить этот сертификат в брелок. Попробуйте создать источник с сообщением об ошибке (не имеют сертификата ..) Затем снова импортируйте сертификат. => Успех!

0 голосов
/ 07 июля 2012

В моем случае удаление сертификатов не сработало.XCode 4, кажется, кеширует или восстанавливает их.Уловка, которая наконец-то сработала для меня, состояла в том, чтобы запустить связку ключей и xcode.Затем в связке ключей перетащите мои 2 сертификата (dev + dist) из 'login' в 'system'.Затем магически появились дубликаты, и я смог их удалить, а затем перетащил сертификаты обратно на «логин»

0 голосов
/ 19 июня 2012

Простое удаление избыточного сертификата не сработало для меня.Кажется, что каждый раз, когда вызывается xcodebuild, он "заново создает" сертификат в цепочке для ключей из кеша где-то ... та же проблема, что и avi Я создал для него хак / исправление, попытался найтигде файл кэшируется и очищается, но не повезло.В конце концов, то, что сработало для меня (немного хак, но, эй, что еще вы можете сделать), это выяснить, что такое номер сертификата, и вручную удалить его из цепочки для ключей вскоре после вызова xcodebuild.Сначала перейдите в каталог / usr / bin / (или в любой каталог, где находится ваш файл xcodebuild, попробуйте which xcodebuild) и выполните следующую команду:

sudo mv xcodebuild xcodebuild_actual

Затем создайте файл, используя ваш любимый редактор (donне забудьте sudo) со следующим кодом:

xcodebuild_actual $* &
echo "xcodebuild started, waiting to wipe certificate, 10 seconds"
sleep 2
echo "Wiping Certificate..."
sudo security -v delete-certificate -t -Z 407629F811D52C0BB7AD31BBB18DCB496354B05E

Примечание: вам придется изменить файл sudoers, чтобы иметь доступ для запуска этой конкретной команды без ввода пароля.

Заменить шестнадцатеричный идентификатор после -Z выше на шестнадцатеричный идентификатор оскорбительного сертификата зомби.Наконец, убедитесь, что файл xcodebuild является исполняемым:

sudo chmod 755 xcodebuild 

Теперь вы можете открыть цепочку для ключей и выполнить команду сборки, а также посмотреть, как воскрешающий сертификат зомби воскресил, а затем, в общем, выстрелил до того, как он сталпроблема для кодирования.Надеюсь, Apple найдет реальное решение для этого.

...