Срок действия сертификата истек или был отозван


159

Некоторое время назад я начал писать новое приложение для ios, после долгого перерыва я снова работаю над ним, и оно почти завершено.

Я тестирую его на симуляторе, но когда я пытался установить его на свой iphone 6 (что я уже делал в прошлом), я получил ошибку, сообщающую, что мое приложение не может быть установлено, так как истек срок действия сертификата, который использовался для подписи этого приложения или был отозван.

Я перепробовал много вещей:

  1. Я удалил все сертификаты и профили обеспечения из xcode, keychain и apple developer и позволил xcode создавать меня новые
  2. Я удалил XCode и сделал весь процесс с самого начала

Но это не решило мою проблему.

Есть идеи, в чем может быть проблема?


2
Вы, вероятно, можете быть жертвой этого
шестнадцатое

после исправления проблемы вы показали, что все еще не повезло
user6218736

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

1
у вас есть правильное системное время?
шестнадцатое

Я только что удалил свою учетную запись Apple из XCode, а также удалил ключи из Keychain и добавил их снова. Работайте как по волшебству. Тем не менее, я пробовал в основном другие шаги, но у меня не получилось.
Рави

Ответы:


279

Изменить: Этот ответ не работает для Xcode 10 и выше. Смотри ответ туркенха.


Решение

Прежде всего, очистите проект, удерживая Shift (⇧) + Command (⌘) + K или выберите « Продукт» > « Очистить».

Затем:

  1. Перейдите в Меню XCode > Настройки

  2. Выберите Аккаунты > Команда > Просмотр сведений

  3. Выберите любой профиль Provisioning из списка профилей Provisioning.

  4. Щелкните правой кнопкой мыши> выберите Показать в Finder . Затем вы увидите все списки профилей обеспечения

  5. Выделите весь список обеспечения из папки и переместите его в корзину

  6. Загрузите все профили обеспечения, щелкнув Загрузить все ниже списков профилей обеспечения.

Теперь запустите снова, и это должно работать!


2
Рад это слышать! :)
Md.Riduanul Islam

2
Да, ты прав. Автоматическая подготовка XCode является предпочтительным способом кодирования подписи приложений во время разработки и распространения. Другими словами, это рекомендуемый подход к настройке проектов для учетных записей разработчиков как для предприятий, так и для разработчиков App Store. Для получения подробной информации
перейдите

2
Спасатель жизни! Спасибо!
Джоэл

7
и у меня нет команды / подробностей просмотра
user924

2
и это аккаунты не аккаунт
user924

80

Изменить: Этот ответ не работает для Xcode 10 и выше. Смотри ответ туркенха.


Я столкнулся с этой проблемой и смог найти ответ.

Ответ, от которого это исходит, можно найти здесь .

Вот что вы должны сделать:

  1. Перейдите в Настройки-> Аккаунты
  2. Нажмите на свой аккаунт
  3. Нажмите «Подробнее»
  4. Нажмите «Загрузить все» в левом нижнем углу.

Эти шаги решили проблему для меня.


1
Работал. Спасибо Энтони
GMHSJ

7
просмотреть детали - нет такой кнопки
user924

55

Для тех, кто не может найти кнопку «просмотреть информацию» в « Аккаунте»> «Команда»> «Подробнее» , вот как я решил эту проблему в Xcode 10 :

  1. Удалите все профили обеспечения в ~ / Library / MobileDevice / Provisioning \ Profiles /
  2. Очистите проект, удерживая Shift (⇧) + Command (⌘) + K или выбрав « Продукт»> «Очистить» (он может быть помечен как «Очистить папку сборки» ).
  3. Перезапустите Xcode

и попробуй еще раз.


1
Я помог мне. Я использую fastlane, и мне пришлось удалить все профили непосредственно из ~ / Library / MobileDevice / Provisioning \ Profiles / Очистить проект и переустановить профили с соответствием fastlane ...
Vladimír Slavík

1
Для меня на Xcode 11 это просто необходимо шаг 2 каждый раз , прежде чем запускать приложение
tähän

На самом деле очень полезно. Спасибо дружище!
Суровая Чавразия

34

У меня было немного другое решение. Возможно, это были обновления или мой конкретный случай использования.

Используя Xcode 7.3.1

Я использую систему обмена файлами (dropbox) для разработки на двух разных машинах. Использование Download Allрешения не помогло мне.

Перейдя по ссылке выше, я воспользовался советом

удалите все профили в ~ / Library / MobileDevice / Provisioning Profiles

(что является крайним показателем, но теперь Xcode должен загрузить то, что вам нужно)

Xcode попросил обновить себя.

У меня все еще есть проблема при переключении между разработками на разных машинах. Он представляет следующее предупреждение / сбой:

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

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


Это сработало для меня. В XCode не было профилей обеспечения, поэтому я не мог удалить их оттуда.
henrikmerlander

Что происходит с удаленными сертификатами? Смогу ли я запустить эти проекты? (это сработало для меня, хотя у меня есть те вопросы)
Гель

@gel удаленные сертификаты должны быть перезагружены Xcode, когда они вам нужны
bshirley

25

Простое «Очистить» ( Shift (⇧) + Command (⌘) + K ) решено для меня


Я фанат чистой и чистой сборки, но я никогда не думал об этом в этом выпуске! Спасибо! :) Пожалуйста, выполните Command + AltOption + Shift + K, чтобы очистить вашу сборку, просто чтобы убедиться.
Гленн

Это хорошо (я делаю это каждый раз), но недостаточно. Удаление всех профилей инициализации в ~ / Library / MobileDevice / Provisioning \ Profiles / мне помогло.
Рафаэль Пинель

11

Найден еще один случай, который приводит к кровавой Certificate has either expired or has been revokedошибке в Xcode 9. Если вы пытаетесь подписать действительный сертификат, но у вас есть еще один отозванный сертификат в той же группе в цепочке для ключей, XCode выдает эту ошибку. Чтобы проверить, отозвали ли вы сертификат, см Xcode -> Preferences -> Accounts -> Your Apple ID -> Your Team -> Manage Certificates. Удаление аннулированного сертификата с Keychain Accessрешает это. Похоже, еще одна ошибка знака кода в Xcode.


Это тот, который работает для меня. Я сам нашел решение, но я рад, что им уже поделились
Gee.E

3

В Xcode 8

  1. Перейдите в Настройки-> Аккаунты
  2. Нажмите на свой аккаунт
  3. Нажмите «Подробнее»
  4. Удалить профиль, который вам нужен
  5. Нажмите «Загрузить все» в левом нижнем углу.

Это решило это для меня, за исключением того, что я должен был нажать «Download All» как 3 раза из-за случайных сообщений об ошибках.
Судо

2

-Открытый брелок - проверьте все сертификаты, выбрав его. - Проверьте статус, если он действителен или нет. -Если сертификат недействителен, щелкните по нему правой кнопкой мыши и удалите этот сертификат.


2

Новая проблема с Xcode 8, которая работала для меня, состояла в том, чтобы отключить новый флажок «автоматически управлять подписанием» на вкладке «Общие» для цели, а затем снова включить его.

Это инициирует встроенный мастер, который правильно настраивает Xcode 8.


Это работало для меня, но только после того, как я перезапустил свой Mac, после чего (при запуске XCode) диалоговое окно предложило мне отозвать сертификат ... Я сделал, затем включил автоматическое управление подписью (которое я не проверял) до перезагрузки). +1 за отсутствие необходимости удалять какие-либо сертификаты!
kwishnu

2

В итоге мне удалось закрыть и перезапустить мой MacBook после загрузки последних профилей обеспечения.


У меня тоже работает. Но мне интересно, в чем собственно проблема.
umairhhhs

2

Я просто снял флажок «Автоматически управлять подписанием и проверил это снова при выборе команды, и это сработало для меня» введите описание изображения здесь


2

У меня была эта проблема, и она выглядела как ошибка в 10.x новой системе сборки xcode .

  1. Выберите « Файл»> «Настройки проекта». Измените используемую систему сборки Legacy build system.

  2. Выполните глубокую очистку проекта, удерживая Option (⎇) + Shift (⇧) + Command (⌘) + K или удерживая Option (⎇) и выбирая « Продукт»> «Очистить папку сборки».

  3. Запустить на устройстве


2

В Xcode 11 .3.1 интерфейс изменился от всех текущих ответов.

  1. Зайдите в меню «Xcode»> «Настройки»> «Аккаунты».
  2. Выберите правильный Apple ID слева для проекта.
  3. Если профиль все еще активен, нажмите «Управление сертификатами».
  4. Если есть какие-либо отозванные сертификаты, щелкните правой кнопкой мыши на отозванных сертификатах и ​​выберите «Удалить сертификат». На прилагаемом скриншоте сертификат в красной рамке должен быть удален.

Скриншот отзываемого сертификата

Удаление последнего сертификата «Дата создания» должно обновить ваш сертификат, но рекомендуется удалить все отозванные сертификаты.

После удаления отозванного сертификата (ов) вы сможете перестроить приложение.


1

После всего вышеперечисленного шаг чистоты и перестройки также является фактором.


1

Когда ни удаление, ни повторная загрузка профилей, ни «Очистка» помогают мне это сделать:

Настройки> Аккаунты> Apple ID> выберите свой аккаунт > выберите свою команду > Показать подробности ...> сбросьте свою подпись (в моем случае iOS Development).

Это всегда работало для меня.


могу подтвердить, что это сработало для меня, когда любой другой ответ / решение не удалось, кроме того, я также скачал все профили
хайн

3
Не вижу «Подробности» и «Сброс вашей
подписи

@ gman, вы правы, они снова изменили интерфейс. Теперь я не уверен, как это сделать.
Александр Сосновщенко

1

1.Измените настройку времени вашего Mac на Автоматический (откройте «Настройки даты и времени» и установите «Дата и время автоматически»).

2. После этого перейдите к своему X-коду, очистите и запустите код.

3. Если это не удалось, выйдите из своего профиля Apple и удалите все автоматически созданные профили инициализации в XCode - «Установки» и переместите все профили инициализации в корзину и загрузите как новый файл. Затем снова войдите в систему и запустите код.


1

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

У меня была эта проблема в Xcode 11.4.1, когда мы отключили подписывание кода в нашей цели тестирования хоста как усовершенствование во время сборки. После того, как я снова включил подписывание кода для теста хоста, у меня больше не возникало этой проблемы при переключении между выполнением цели теста хоста и приложением!


0

переименуйте ваш каталог, не используйте десятичную точку & 0 (ноль).

вот так я это решаю.


0

Ни одно из предоставленных решений не сработало (хотя все они верны), и удаление проекта Xcode с диска и повторное клонирование его из репозитория решило это для меня.


0

Иногда в Xcode 8 вы можете оказаться в цикле revoke-регенерации, где вы позволяете Xcode 8 «исправить» сертификаты и подготовку, затем Xcode обнаруживает, что новые / восстановленные сертификаты также недействительны, и вы возвращаетесь к отзыву, и это продолжает происходить.

В таких случаях проверьте время MacOS! Если для него установлено другое время, а не реальное текущее время, новый сертификат всегда может быть «еще не действителен».


0

Это не большая проблема, с которой я столкнулся. Просто очистите проект и перезапустите ваш xcode ! Надеюсь, это будет работать для вас! Это работает для меня. :)

Или прежде всего очистите проект, удерживая Shift (⇧) + Command (⌘) + K или выберите «Продукт»> «Очистить».

затем

Перейдите в Меню XCode> Предпочтения

Выберите Учетная запись> Команда> Просмотр сведений

Выберите любой профиль Provisioning из списка профилей Provisioning.

Щелкните правой кнопкой мыши> выберите Показать в Finder . Затем вы увидите все списки профилей обеспечения

Выделите весь подготовительный список из папки и переместите его в корзину

Загрузите все профили инициализации, нажав Скачать все ниже. Списки профилей инициализации.

Теперь бегите снова, и это должно работать!


0

С Xcode Version 10.1Я решил с этими шагами:

  1. Перейти к Xcode, Preferencesи выберите Accountsвкладку
  2. В разделе счетов нажмите на шестерню в левом нижнем углу угла окна, а затем нажмите на Export Apple ID and Code Signing Assets...экспорт в файл, напримерTest.developerprofile
  3. Удалите профиль, который вы используете
  4. Снова щелкнув по шестерне, выберите Import Apple ID and Code Signing Assets...и выберите ранее экспортированный файл.Test.developerprofile
  5. Теперь выполните Clean( Shift (⇧) + Command (⌘) + K ) и a Build( Command (⌘) + B )
  6. Запустить снова

0

У меня возникла эта проблема после изменения учетной записи электронной почты.

После того, как было опробовано так много возможных решений, единственное, что сработало, - это просто удалить сертификат, созданный в тот день, из моей учетной записи разработчика Apple . (Это был не единственный сертификат в моей учетной записи) Кажется, новый сертификат был создан автоматически, и он конфликтовал с основным.


0

У меня такая же проблема. Я решил после очистки проекта (Shift (⇧) + Command (⌘) + K), выйти из Xcode и снова открыть.


0

Используя Xcode 10.3

Следуй этим шагам:

  1. Перейти на https://developer.apple.com
  2. Следуйте Account> Certificates, Identifiers & Profiles>Devices
  3. Найдите свой iPhone из списка и нажмите на него. Откроется страница с подробностями
  4. Отключить, а затем включить его
  5. Перейти Xcodeвыбрать iPhone и запустить его

Не забудьте зайти Settings> General> Device Managementдоверять учетной записи разработчика



0

Иногда «Идентификатор пакета» в XCode изменяется из-за некоторых вещей, которые вы сделали. Удостоверьтесь, что Идентификатор пакета, который вы определили в своей учетной записи Apple Developer, в точности совпадает с идентификатором в Xcode.


0

В случае, если это кому-нибудь поможет: Xcode 11.x Я также отозвал (удалил) сертификат в учетной записи разработчика приложений. Затем я подумал, что тоже удалил сертификат в доступе Keychain, но продолжал получать сообщения об ошибках при попытке загрузить обновление приложения в AppStore.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.