Ошибка CodeSign: идентификатор сертификата «iPhone Developer: XXXX (12345678)» появляется в цепочке для ключей более одного раза. Инструмент кодового оформления требует, чтобы был только один.
Я захожу в свою связку ключей и удаляю ее. Но я получаю эту ошибку каждый раз, когда перезапускаю Xcode 4, и какое-то приложение добавляет устаревший старый сертификат обратно в цепочку для ключей. Есть идеи, почему и какое приложение?
iphone
objective-c
xcode4
code-signing
Mugunth
источник
источник
Ответы:
У меня была такая же проблема. Это было исправлено. Это произошло после того, как я отправил приложение и установил несколько сертификатов для подписи приложения.
Быстрое исправление: откройте ДОСТУП К КЛЮЧЕВОЙ ЦЕПИ> щелкните МОИ СЕРТИФИКАТЫ> там вы, вероятно, увидите iPhone Developer:. Вы, вероятно, увидите это ДВАЖДЫ! Выберите тот, у которого самый ранний срок годности, щелкните правой кнопкой мыши и выберите УДАЛИТЬ.
Если вы этого не сделали, перезапустите Xcode. Работает сейчас. :)
Удачного кодирования.
источник
Думаю, я разобрался, почему не работает простое удаление. Поскольку сертификат разработчика все еще хранится в профиле обеспечения, когда я закрываю / повторно открываю Xcode после удаления сертификата в Связке ключей, я увидел, что старый сертификат вернулся. Так что снова удаляю. Это сработало.
Решение простого удаления профиля у меня не сработало.
Решение, которое сработало в моем случае:
источник
Я просто потратил довольно много времени, борясь с этой же проблемой. После всех попыток исправить это я наконец понял, что это ошибка в Xcode. Этот пост дал мне подсказку, как это исправить: сертификаты волшебным образом снова появляются в вашей связке ключей
В моем случае соответствующий закрытый ключ был в системной цепочке для ключей, и на нем было только мое имя (трудно сказать, что это было для подготовки). Мне пришлось:
Интересным наблюдением является то, что когда вы удаляете сертификат, он не удаляет связанный с ним закрытый ключ. Визуально он показывает закрытый ключ под сертификатом. Не дайте себя обмануть.
Удачи!
источник
Хорошо, нашел ответ на другой «Связанный» вопрос. Проблема с сертификатом с истекшим сроком действия Xcode Известная проблема с Xcode 4 http://openradar.appspot.com/9173280
источник
Если вы являетесь участником программ iOS Developer и Enterprise iOS Developer и ввели название своей компании одинаково для обоих приложений, вы получите два действительных сертификата распространения с тем же именем.
Я считаю, что этот вопрос решает эту ситуацию: конфликты CodeSign между Developer и Enterprise Distribution
источник
У меня такая же проблема с xcode45-DP1. это работает для меня:
удалите все сертификаты, связанные с вашей учетной записью, из связки ключей. ВЫЙТИ брелок
удалите все профили обеспечения, связанные с вашей учетной записью, из xcode: организатор: устройство: Библиотека: профили обеспечения. ВЫЙТИ xcode
отозвать свой сертификат, восстановить его и загрузить на свой компьютер сборки
перед загрузкой профиля подготовки нажмите « Изменить» рядом с кнопкой загрузки, чтобы убедиться, что выбрано ваше имя.
Затем загрузите профиль обеспечения
дважды щелкните сертификат, чтобы установить его на связку ключей
перетащите профиль обеспечения в xcode: организатор: устройство: Библиотека: профили обеспечения
не нажимайте кнопку обновления в xcode.
сделать сборку.
источник
Ответ здесь
удалите все мои старые профили обеспечения, используя старый сертификат с помощью Organizer, затем выйдите из XCode, удалите старый сертификат из Keychain и перезапустите XCode.
похоже, что xcode будет хранить сертификаты, когда у вас есть ссылки на в профилях подготовки
источник
У меня возникли проблемы с повторным заполнением сертификатов зомби в моей связке ключей, и идентификатор сертификата появлялся дважды. Простое удаление дубликата сертификата не помогло.
В Xcode, когда я смотрел на свою подпись кода в цели, я вспомнил, что у меня был другой профиль распространения в сборках «Ad Hoc», чем в сборках «Release».
Когда я создал новый сертификат, я загрузил новый профиль только для сборок Ad Hoc, но не для сборок Release.
Xcode зависал на сертификате для обоих этих профилей, и поэтому Xcode вызывал повторяющиеся сертификаты ... потому что я забыл правильно обновить свои профили.
Обязательно обновите ВСЕ свои профили обеспечения до нового сертификата и измените ВСЕ профили одновременно в Xcode.
источник
У меня была эта проблема, и я прочитал всю информацию о ней, наконец, я нашел решение самостоятельно. Что люди не упомянули, так это то, что ПЕРЕД очисткой сертификатов в органайзере Xcode и ПЕРЕД очисткой ключей с истекшим сроком действия в вашей цепочке для ключей необходимо убедиться, что у вас нет просроченных сертификатов на портале Provisioning Portal . Если у вас будет хотя бы один сертификат с истекшим сроком действия для старого приложения, которое использовало старый сертификат разработчика, Xcode перенесет его в свой органайзер с первой сборкой, а оттуда он перейдет в вашу связку ключей и вызовет дубликат.
источник
В моем случае «кеш», на который смотрел Xcode, был подключенным устройством iOS. Чтобы определить, является ли это проблемой для вас:
Если это основная причина для вас, вы можете обойти ее, отключив устройства iOS перед запуском Xcode.
источник
Простое удаление избыточного сертификата у меня не сработало. Кажется, что каждый раз, когда вызывается xcodebuild, он «воссоздает» сертификат в цепочке ключей из кеша где-то ... та же проблема, что и avi. Я создал для него хак / исправление, попытался найти, где файл был кэширован и очистить его, но не повезло. В конце концов, что сработало для меня (немного взлома, но что еще вы можете сделать), так это выяснить, какой номер сертификата, и вручную удалить его из связки ключей вскоре после вызова xcodebuild. Сначала перейдите в каталог / usr / bin / (или в любой другой каталог, в котором находится ваш файл xcodebuild, попробуйте
which xcodebuild
) и выполните следующую команду:Затем создайте файл с помощью вашего любимого редактора (не забудьте sudo) со следующим кодом:
Примечание: вам нужно будет изменить файл sudoers, чтобы иметь доступ для выполнения этой конкретной команды без необходимости вводить пароль.
Замените шестнадцатеричный идентификатор после -Z выше на шестнадцатеричный идентификатор сертификата зомби-нарушителя. Наконец, убедитесь, что файл xcodebuild исполняемый:
Теперь вы можете открыть свою связку ключей и запустить команду сборки и посмотреть, как зомби-сертификат-злоумышленник воскрешается, а затем быстро уничтожается до того, как это станет проблемой для кодовой подписи. Надеюсь, Apple найдет для этого реальное решение.
источник
В моем случае удаление сертификатов не помогло. XCode 4, кажется, кеширует или восстанавливает их. Уловка, которая наконец-то сработала для меня, заключалась в том, чтобы запустить связку ключей и xcode. Затем в связке ключей перетащите 2 моих сертификата (dev + dist) из «логина» в «систему». Затем дубликаты волшебным образом появились снова, и я смог их удалить, а затем перетащил сертификаты обратно в `` вход ''
источник
Это очень просто, экспортируйте правильный сертификат на свой рабочий стол. Удалите этот сертификат в связке ключей. Попробуйте создать источник с сообщением об ошибке (нет сертификата ..) Затем снова импортируйте сертификат. => Успех!
источник
Я только что удалил один из закрытых ключей в своей цепочке для ключей для сертификата, который мне больше не нужен.
Даже если сертификат повторно применяется, закрытый ключ больше не появляется. Теперь проверьте наличие действительных сертификатов, и появится только один сертификат, а другие сертификаты, закрытый ключ которых удален, больше не будут отображаться среди действительных сертификатов.
Думаю, это самый простой способ решить эту проблему.
источник
Однажды я столкнулся с той же проблемой. И я решил это, удалив неиспользуемый профиль обеспечения со вкладки «Организатор» в xcode. Фактически Keychain получит этот сертификат из этого профиля обеспечения, который является либо устаревшим сертификатом, либо сборкой по отозванному сертификату.
Так что вам просто нужно удалить этот профиль обеспечения со вкладки «Организатор». Организатор находится на правой верхней боковой кнопке xcode. Откройте его, а затем в Организаторе удалите профили подготовки, которые вы не используете.
Вот скриншот,
И не забудьте удалить лишний сертификат из связки ключей, но после этого сертификат больше не появится.
источник