Ответ 1
Хорошо, нашел ответ на другой вопрос "Связанный". Истек срок действия сертификата Xcode Известная проблема с Xcode 4 http://openradar.appspot.com/9173280
Ошибка CodeSign: идентификатор сертификата "iPhone Developer: XXXX (12345678)" появляется более одного раза в цепочке ключей. Инструмент codeign требует наличия только одного.
Итак, я иду в свой брелок и удаляю его. Но я получаю эту ошибку каждый раз, когда я перезапускаю Xcode 4, и какое-то приложение добавляет старый старый сертификат обратно в цепочку ключей. Любые идеи, почему и какое приложение?
Хорошо, нашел ответ на другой вопрос "Связанный". Истек срок действия сертификата Xcode Известная проблема с Xcode 4 http://openradar.appspot.com/9173280
У меня была такая же проблема. Он исправлен. Это произошло после того, как я отправил приложение и установил несколько сертификатов для подписания приложения.
Быстрое исправление: Откройте "ДОСТУП КЛЮЧА" > нажмите "МОИ СЕРТИФИКАТЫ" там, где вы, вероятно, увидите Разработчик iPhone:. Вы, вероятно, увидите это ДВАЖДЫ! Выберите тот, у которого самая ранняя дата истечения срока действия, щелкните правой кнопкой мыши и выберите УДАЛИТЬ.
Перезагрузите Xcode, если вы этого не сделали. Работает сейчас.:)
Счастливое кодирование.
Я думаю, что понял, почему простое удаление не работает. Поскольку сертификат разработчика по-прежнему сохраняется в профиле предоставления, когда я закрываю/повторно открываю Xcode после удаления сертификата в Keychain, я видел, как старый сертификат возвращается. Поэтому я удаляю его снова. Это сработало.
Простое удаление решения профиля не сработало для меня.
Я просто потратил немало времени, борясь с этой же проблемой. После всех попыток исправить это, я наконец понял, что это ошибка в Xcode. Этот пост дал мне подсказку, чтобы исправить это: сертификаты, магически появляющиеся в вашей цепочке ключей
В моем случае соответствующий секретный ключ находился в системной цепочке ключей, и просто было мое имя на нем (трудно сказать, что это было для обеспечения). Мне пришлось:
Интересное замечание состоит в том, что при удалении сертификата он не удаляет связанный закрытый ключ. Визуально он показывает закрытый ключ под сертификатом. Не обманывайте себя.
Удачи!
Если вы являетесь участником программ для разработчиков iOS Developer и Enterprise iOS и вы ввели название своей компании в обоих приложениях, вы получите два действительных сертификата распространения с тем же именем.
Я считаю, что этот вопрос затрагивает эту ситуацию: Кодировки CodeSign между Developer и Enterprise Distribution
У меня такая же проблема с xcode45-DP1. это работает для меня:
удалить все сертификаты, связанные с вашей учетной записью, из связки ключей. QUIT keychain
удалите все профили подготовки, связанные с вашей учетной записью, из xcode: organizer: device: Library: профили подготовки. QUIT xcode
отозвать сертификат и восстановить его и загрузить его на свою машину сборки
прежде чем загружать профиль подготовки, нажмите "Изменить" рядом с кнопкой загрузки, чтобы убедиться, что выбрано ваше имя.
Затем загрузите профиль подготовки
дважды щелкните по сертификату, чтобы установить его на цепочку ключей
перетащите профиль подготовки в xcode: organizer: device: Library: профили подготовки
не нажимайте кнопку обновления из xcode.
сделать сборку.
Ответ здесь
удалите все мои старые профили подготовки, используя старый сертификат с помощью Organizer, затем закройте XCode, удалите старый сертификат из Keychain и перезапустите XCode.
выглядит так: xcode будет хранить сертификаты вокруг, когда у вас есть ссылки на профили обеспечения
У меня были проблемы с копированием сертификатов зомби в мой брелок, а идентификатор сертификата появился дважды. Простое удаление дублирующего сертификата не сработало.
В Xcode, когда я смотрю на мою подпись кода в целевой точке, я вспомнил, что у меня был другой профиль распределения в строках Ad Hoc, чем сборка "Release".
Когда я сгенерировал новый сертификат, я только загрузил новый профиль для Ad Hoc, а не для релизов.
Xcode висел в сертификате для обоих этих профилей, поэтому Xcode вызывал дубликаты сертификатов... потому что я забыл правильно обновлять свои профили.
Обязательно обновите ВСЕ профили подготовки к новому сертификату и одновременно измените ВСЕ профили в Xcode.
У меня была эта проблема и прочитал каждую информацию об этом, наконец, я нашел решение самостоятельно. То, что люди не могли упомянуть, заключается в том, что ПРЕЖДЕ ЧЕМ очистка сертификатов в организаторе Xcode и ПЕРЕД очистка истекших ключей в цепочке ключей вам необходимо убедиться, что у вас нет истекли сертификаты в Provisioning Portal. Если у вас будет хотя бы один сертификат с истекшим сроком действия для старого приложения, которое использовало старый сертификат разработчика, Xcode потянет его в свой организатор с первой сборкой, и оттуда он перейдет к вашей цепочке ключей и вызовет дубликат.
В моем случае "кэш" Xcode смотрел на подключенное устройство iOS. Чтобы определить, является ли это для вас проблемой:
Если это основная причина для вас, вы можете обойти его, убедившись, что вы отключили устройства iOS перед запуском Xcode.
Простое удаление избыточного сертификата не работает для меня. Кажется, что каждый раз, когда вызывается xcodebuild, это "повторное создание" сертификата в цепочке ключей из кеша где-то... такая же проблема, как avi Я создал хак /fix для него, попытался найти, где файл кэшируется, и очистить его, но не повезло. В конце концов, что сработало для меня (немного взломать, но эй, что еще вы можете сделать), было выяснить, что такое номер сертификата, и вручную удалить его из брелка вскоре после вызова xcodebuild. Сначала перейдите в каталог/usr/bin/(или любой другой каталог имеет файл xcodebuild, попробуйте which xcodebuild
) и выполните следующую команду:
sudo mv xcodebuild xcodebuild_actual
Затем создайте файл, используя ваш любимый редактор (не забудьте 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 придумает реальное решение для этого.
В моем случае удаление сертификатов не помогло. XCode 4, похоже, кэширует или восстанавливает их. Трюк, который, наконец, работал у меня, заключался в том, чтобы работать с брелками и xcode. Затем в цепочке ключей перетащите мои 2 сертификата (dev + dist) из "login" в "system". Затем дубликаты волшебным образом снова появились, и я смог их удалить, а затем я перетащил сертификаты обратно в "login"
Это очень просто, экспортируйте правильный сертификат на свой рабочий стол. Удалить этот сертификат в брелок. Попробуйте создать источник с сообщением об ошибке (не иметь сертификата). Затем снова импортируйте сертификат. = > Успех!
Я просто удалил один из секретных ключей в моей цепочке ключей для сертификата, который мне больше не нужен.
Даже несмотря на повторный просмотр сертификата, но закрытый ключ не появляется. Теперь проверьте действительные сертификаты и появится только один сертификат, а остальные сертификаты, чей секретный ключ будет удален, больше не отображаются в действительных сертификатах.
Я думаю, что это самый простой способ решить эту проблему.
Я имел дело с одной и той же проблемой один раз. И я решил это, удалив неиспользуемый профиль подготовки на вкладке "Организатор" в xcode. Фактически Keychain получит этот сертификат из этого профиля подготовки, который является либо истекшим сертификатом, либо сборкой с отмененным сертификатом.
Итак, вам просто нужно удалить этот профиль подготовки на вкладке "Организатор". Органайзер находится на правой стороне кнопки xcode. Откройте его, а затем в Organizer удалите профили подготовки, которые вы не используете.
Вот скриншот,
И не забудьте удалить дополнительный сертификат из брелка, но после этого этот сертификат больше не появляется.