it-swarm.com.ru

Xcode 8 показывает ошибку, что профиль обеспечения не включает сертификат подписи

Xcode 8 показывает ошибку, что профиль обеспечения не включает сертификат подписи.

Эта проблема связана с Xcode-8 только с Xcode 7, тот же профиль обеспечения, показывающий связанный идентифицированный сертификат.

163
Satish Mavani

Чтобы исправить это,

Я просто включаю «Автоматическое управление подписанием» на вкладке «Общие настройки проекта». Прежде чем включить, я боялся, что у него могут быть некоторые побочные эффекты, но как только я включу, это работает для меня.

Надеюсь, это поможет другим!  enter image description here

81
Satish Mavani

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

 enter image description here

Удаление совпадающего идентификатора, у которого не было закрытого ключа, заставило XCode снова обнаружить правильное удостоверение.

150
Nick

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

В нем говорится, что профиль обеспечения, выбранный вами на «вкладке Общие», не содержит сертификат подписи, который вы выбрали в «Настройках сборки» -> «Идентификация подписи кода».

Обычно это происходит, если для идентификатора отладки был выбран сертификат распространения в «Настройках сборки» -> «Идентификация подписи кода».

Если это происходит в разделе «Подписывание (отладка)», это также может означать, что «Идентификация подписи» -> «Разработка iOS» не включена в профиль обеспечения.

132
Eystein Bye

Для тех, кто должен продолжать использовать не auotamatic по какой-то причине

Откройте keyChain Access, чтобы увидеть, есть ли два одинаковых сертификата, если их два или более, просто удалите один, и он будет работать :)

42
d0ye

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

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

Проект -> Цели -> Выберите приложение -> Настройки сборки -> Идентификация подписи кода -> Отладка -> Дважды нажмите «Распространение iPhone» и измените его на «iPhone Developer».

29
Muchab

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

27
Loke

Для чего стоит автоматическая подпись не удавалось каждый раз, пока я просто вручную не удалил локальные профили в: ~/Library/MobileDevice/Provisioning Profiles

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

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

22
blackjack75

Для тех, кто все еще борется с этой проблемой в Xcode8. Для меня была проблема с дубликатом сертификата, вот как я ее решил:

Я прочитал ответ Ника и начал расследование. Я проверил все ключи и сертификаты в моем конкретном случае (внутри ~/Library/Keychains/System.keychain).

Открыв файл, я обнаружил, что у меня есть два сертификата распространения iPhone (это был сертификат, запрашиваемый Xcode), один с закрытым ключом распространения iOS, который я использую с самого начала, и другой сертификат распространения iPhone, который Закрытый ключ имел имя (iOS Distribution: NAME), которое мне не было знакомо. Я удалил этот последний сертификат, снова запустил Xcode и проблема исчезла. xCode не смог разрешить этот конфликт, и поэтому постоянно выдавал ошибку подписи сертификата.

Проверьте брелки, возможно, у вас есть дубликат сертификата.

15
S.Go.Mot

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

Таким образом, в упомянутом наборе есть инструмент sigh, который волшебным образом решает любые проблемы подписи, отсюда и название :) Приятно то, что этот инструмент инкапсулирует знания об общих проблемах подписи и может обнаруживать и устранять большинство из них.

Fastlane устанавливается как Ruby gem:

gem install fastlane

А потом просто вызывается:

fastlane sigh --development

Ответь на два вопроса и вуаля:

[11:56:55]: No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you
[11:57:01]: Creating new provisioning profile for 'com.myapp' with name 'com.myapp Development'
[11:57:06]: Downloading provisioning profile...
[11:57:09]: Successfully downloaded provisioning profile...
[11:57:09]: Installing provisioning profile...

Наконец, перейдите в Build Settings -> Signing и переключитесь на вновь созданный профиль обеспечения, имя которого вы только что видели в выходных данных команды.

Этот пример относится к проблеме подписи кода разработки (работает на устройстве). Проверьте документация вздоха для всех других вариантов.

10
Tomek Cejner

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

Существует параметр сборки, который определяет, какой сертификат должен использоваться для какой конфигурации сборки. Чтобы изменить его, перейдите в настройки сборки и найдите Идентификатор подписи кода . Когда развернуто, должны быть отдельные строки для каждой конфигурации сборки (обычно Debug и Release) с выбранным идентификатором во втором столбце (обычно iOS Developer или iOS Distribution). Убедитесь, что для каждой конфигурации сборки установлено правильное удостоверение.

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

6
Mark

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

5
Arshad Shaik
  1. Удалите сертификат разработчика, у которого нет закрытого ключа.
  2. Удалите профиль обеспечения с вашего компьютера, перейдя в папку (~/Library/MobileDevice/Provisioning Profiles)
  3. Затем сначала установите флажок, а затем снимите флажок Автоматически управлять подписью в настройках проекта, выбрав команду.
  4. Войдите в учетную запись разработчика Apple и отредактируйте профиль обеспечения, выбрав все доступные сертификаты разработчика, затем загрузите и добавьте в XCODE.
  5. Выберите профиль обеспечения и идентификацию подписи кода в настройках сборки проекта
4
PS_dev

«Включить автоматическую подпись», а затем выбор команды из выпадающего меню помогли мне решить эту проблему.

4
Warp

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

No certificate for team 'MY_TEAM' matching 'iPhone Developer: FORMER_DEVELOPER' found

итак, что я сделал, чтобы это исправить: 

  1. Перейти Build Settings -> Signing -> Code Signing Identity
  2. Найдите все сертификаты «FORMER_DEVELOPER» и выберите нужные. 

Надеюсь, это кому-нибудь поможет. 

2
Zaporozhchenko Aleksandr

Я еще не видел упомянутого выше, но если у вас все еще есть проблемы после воссоздания ваших профилей обеспечения, удаления существующих в вашей папке Provision Profiles, проверки на наличие ошибок в вашей цепочке для ключей и т.д. (Все другие ответы ITT), откройте свой Target> Build Settings> Code Signing и убедитесь, что все выглядит согласованно. Например, я изменил «Идентификатор подписи кода для отладки» на «Распределение», что, очевидно, не сработает, поскольку профиль обеспечения разработки не имеет сертификата распространения и, в первую очередь, вызывает ошибку.

2
jabruzzi

Если вы пытаетесь загрузить свое приложение в iTunes Connect (ваши профили инициализации настроены на распространение), выберите «Настройки проекта» -> «Настройки сборки» -> «Подписание кода». Обязательно установите все параметры отладки и выпуска в свой профиль обеспечения распространения.

2
Niall Kehoe

Для меня ни одно из вышеперечисленных решений не сработало. Я мигрировал с двух старых компьютеров Mac на новый, пытаясь заставить профили выпуска/отладки работать с XcodeБЕЗXcode, автоматически управляя ими.

Решением для меня было то, что когда я пошел и создал два новых сертификата, яТАКЖЕдолжен был зайти в мои профили обеспечения и добавить (как в дистрибутиве, так и в dev) новые сертификаты в профили обеспечения, чтобы узнал их. После этого и загрузки, xcode удалил все ошибки, и это хорошо.

Надеюсь, это поможет кому-то!

2
Jprofficial

У меня та же проблема . Я изменил Mac. И когда я скачал сертификат XCode, вы получаете сообщение об ошибке: «Ошибка в том, что профиль безопасности не включает подпись сертификата».

1) Перейдите на https://developer.Apple.com/account/ios/profile/limited/edit Выберите проект => изменить => Сертификаты => Выбрать все => Создать => Загрузить

2) В Xcode: файл проекта => Подписание (отладка) => Подготовка профиля => Импортировать профиль => Выбрать файл с 1

1
maxwell

Я получил одно из этих писем от Apple:

Дорогой Джон Доу, 

Следующий сертификат был отозван членом вашей команда разработчиков или истек: 

Сертификат: iOS Разработка 

Название команды: Honey Team, LLC 

Это не влияет на приложения, которые вы отправили в App Store или ваша способность обновлять свои приложения. Если вы используете инициализацию профили, которые содержат этот сертификат, они должны быть воссозданы до они могут быть использованы повторно. Для получения дополнительной информации см. «Обзор подписания приложения» раздел справки Xcode.

С наилучшими пожеланиями, 

Поддержка программ Apple для разработчиков


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

Решение состоит в том, чтобы:

  • войдите в учетную запись разработчика Apple
  • удалить/отозвать предыдущие сертификаты, созданные на мое имя. 
  • добавьте сертификат new в профиль обеспечения. Вы можете определить более новый по сроку годности
  • загрузите их снова от Xcode. Xcode >> Аккаунт >> Скачать все профили
  • перезапустите Xcode

Лично у меня не было такого доступа. Этот доступ был доступен только для администратора нашей команды, поэтому у меня нет скриншотов, и я не уверен, что эти шаги на 100% правильные.

1
Honey

Вот шаги, решенные для меня (для тех, кто сталкивается с той же проблемой в XCode 9.2):

  1. Просто вручную удалили локальные профили в ~/Library/MobileDevice/Provisioning Profiles.

  2. Удалил и создал все сертификаты и профиль обеспечения из учетной записи разработчика.

  3. Удалил аккаунт разработчиков из Xcode и заново его добавил.

Решил мою проблему! :-)

1
Shoaib Bagwan

Я боролся с этим в течение многих дней. 

Шаг 1: Удалены все сертификаты, профиль обеспечения, appID, Key и т.д. Из учетной записи разработчика.

Шаг 2: Воссоздали сертификаты push-уведомлений, профиль обеспечения, идентификатор приложения и т.д.

Шаг 3: Удалил все сертификаты из цепочки для ключей.

Шаг 4: Очистил весь профиль обеспечения из ~/Library/MobileDevice/Provisioning Profiles.

Шаг 5: Добавлен только необходимый файл обеспечения и протестирован. Работает нормально.

0
A.G

Попробуйте загрузить сертификаты/профили непосредственно из центра участников, а не делать это из Xcode. 

Это сработало для меня, когда я вручную загрузил их из членского центра.

0
Somya

Это означает, что вам нужно выполнить одно из следующих действий:

  1. Вы должны были создать сертификат в Центре разработчика, а затем включить этот сертификат в профиль обеспечения, который вы импортируете в XCode. 
  2. Иначе, если вы используете сертификат, созданный кем-то другим, попросите их поделиться/экспортировать свой сертификат и закрытый ключ (файл .p12) вам, и вам нужно включить его в свою цепочку для ключей. Смотрите здесь

Решением проблемы №2, когда вы не можете получить сертификат и файл .p12 от создателя, было бы просто установить флажок «Автоматически управлять подписанием». 

0
javatogo

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

  1. удалить все сертификаты iPhone Developer в связке ключей.
  2. удалить все сертификаты в учетной записи Apple.
  3. используя xcode «Manage Certificates» для добавления сертификата, иногда у вас все еще есть сертификат на вашем Mac, но я не знаю, где он находится сейчас, и в случае успешного добавления ваша учетная запись Apple также отобразит этот сертификат, а затем вы сможете создать свой сертификат. профиль с этим сертификатом и скачать ... перейти к 5
  4. если вы используете «Управление сертификатами», не можете добавить сертификат, вы можете создать новый сертификат и сделать шаги.
  5. конец.

тот же ответ с проблема подписания кода в Xcode версии 8 .

0
Yu Chai

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

Чинить:

  1. Чтобы проверить, какой сертификат связан с вашим профилем обеспечения, нажмите Нажмите кнопку Изменить в своем профиле обеспечения в разделе Сертификаты, идентификаторы и профили на панели инструментов Apple Developer. 
  2. Скачать сертификат с панели приборов
  3. Дважды щелкните файл, чтобы установить его в цепочку для ключей
  4. Перетащите файл в Xcode, чтобы быть уверенным, что он связан

Ошибка должна исчезнуть сейчас.

0
Jack

У меня была та же самая проблема, и причина была копейкой. В настройках сборки был выбран неправильный профиль и сертификат. Я только сделал это до нескольких дней. Таким образом, вам не нужно включать «автоматический» внутри xcode. Проверьте профили в настройках сборки, прежде чем делать это.

0
Ruchi

Нажатие, но затем отмена «Включить автоматическую подпись» работало для меня, хотя фактическое изменение было:

ALWAYS_EMBED_Swift_STANDARD_LIBRARIES = YES;

или в Xcode это называется Always Embed Swift Standard Libraries

0
tristanl