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

224

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

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

Сатиш Мавани
источник
1
Вам необходимо: а) обновить свой профиль обеспечения требуемым сертификатом или б) установить сертификат (возможно, вам также потребуется перенести его с другого компьютера Mac с закрытым ключом, если он изначально не был установлен на вашем компьютере Mac)
pedrouan
1
а) обновите свой профиль обеспечения требуемым сертификатом. - Я уже сделал это, но не работал б) установить сертификат - сертификат уже установлен, и был создан на той же машине, поэтому мне не нужно экспортировать какой-либо ключ или что-то. И, как я сказал, нет никаких проблем с Xcode 7 на той же машине. это означает, что нет никаких проблем с установкой
Satish Mavani
Проверьте это, это довольно свежо: stackoverflow.com/questions/39565906/…
pedrouan

Ответы:

254

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

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

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

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

Eystein Bye
источник
49
Вы, сэр, сертифицированный гангстер.
J.beenie
4
Вот Это Да! Это фактический ответ на заданный вопрос. Интересно, почему это не принятый ответ. Спасибо, сэр !
Джунаид Мухтар
1
Умный путь должен быть у каждого умного разработчика.
Алмас Адильбек
1
Это должно быть помечено как принятый ответ, который объясняет проблему и решение, а не случайную генерацию XCode.
Andreas777
1
Это блестящий ответ
грешник
186

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

введите описание изображения здесь

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

Ник
источник
Спасибо! Именно то, что здесь происходило
Томас Калмон
9
Не решить проблему для меня. Это, вероятно, одна из тех проблем, которые могут возникнуть из-за нескольких основных причин.
Ash
3
Все мои сертификаты имеют закрытые ключи, поэтому причина может быть разной.
RAM237
8
В моем случае было несколько сертификатов (= подписи идентификаторов) в цепочке для ключей входа с тем же именем, но с разными датами (обратите внимание, в системной цепочке для ключей я получил только один, который был с правильной датой). Удаление всего, кроме правильного, сделало свое дело.
RAM237
5
Подобно @ RAM237, у меня есть несколько сертификатов с одинаковыми именами, к которым все еще прикреплены закрытые ключи. Удаление всего, кроме правильного, помогло.
Junjie
87

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

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

Надеюсь, это поможет другим! введите описание изображения здесь

Сатиш Мавани
источник
Решите эту проблему, но получили эту ошибку: «<неизвестно>: 0: ошибка: Swift не поддерживает команду SDK« iPhoneSimulator9.3.sdk »/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ Ошибка bin / swiftc с кодом выхода 1 "
Мохсин Куреши
1
Вы должны попытаться перезагрузить симулятор и удалить производные данные.
Сатиш Мавани
Я пытался, но не сработало. это в основном показывает из-за Alamofire. Я думаю, что Swift 3 не совместим с Alamofire 3.0
Мохсин Куреши
Я пытался сделать то же самое, но при выдаче мне этой ошибки * есть конфликтующие настройки обеспечения. * автоматически подписывается для разработки, но вручную указана конфликтующая идентификация подписи кода iPhone Distribution. Установите значение идентификатора подписи кода на «iPhone Developer» в редакторе настроек сборки или переключитесь на ручную подпись в редакторе проекта.
user3625547 27.09.16
22
В худшем случае вы теряете все свои настройки, позволяя xcode обрабатывать ваш сертификат. Ленивый ублюдок Xcode будет просто генерировать новые сертификаты!
Силом
64

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

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

d0ye
источник
Это действительно помогло.
Рон
Если кто-то встречает этого человека на улице, купите ему пиво. Спасибо
Грег Хилстон
2
Его / ее нельзя увидеть на улице, потому что пингвинов можно найти не на улицах, а в море. Кстати. Спасибо.
MRizwan33
Это было для меня :)
slippytoad
34

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

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

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

Мусса Чарльз
источник
Это было так просто, но некоторое время боролся с этим. Спасибо, добрый сэр.
JM-AGMS
Отлично. Сработало отлично. Почему это не принимает как правильный ответ?
ZhengGe Che
27

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

Лок
источник
Появилось диалоговое окно с вопросом, хочу ли я включить автоматическую подпись. Несмотря на то, что я нажал "Отмена", это все еще работало
Aepryus
@JamesWierzba это вообще-> Подписание. Так же, как в ответе Сатиша Мэйвена выше.
Лок
БОЛЬШОЙ ОТВЕТ
bubibu
Кроме того, простое переключение между различными профилями исправит это. Возможно, вам также придется сначала очистить ключи в соответствии с предыдущим ответом.
MindWire
23

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

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

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

blackjack75
источник
2
Для меня у меня не было дубликатов, но после удаления, а затем повторной загрузки моих профилей обеспечения, похоже, он работал правильно.
Джулиан К
2
Я перепробовал все остальное, и ничего не
получалось, пока не удалил
1
Извините, как я могу получить доступ к этим профилям ~ / Library / MobileDevice / Provisioning? Я ищу в своем искателе и не могу найти какую-либо папку "Библиотека".
Чен Ли Ён
1
@ChenLiYong Это скрытая папка. Нажмите, CMD + Shift + . чтобы показать все скрытые файлы.
tmuecksch
19

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

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

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

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

S.Go.Mot
источник
Именно то, что случилось со мной.
funct7
Это как раз та проблема в моем случае, у меня была путаница при настройке Fastlane Match, и в итоге у меня было 3 дубликата ключей в моей связке ключей
Minh Thai
18

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

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

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

отметка
источник
2
идеальный ответ,
Насир
1
Спасибо! Это было именно то, что мне было нужно.
Амадеу Кавальканте Филью
12

Вы также можете решить проблемы с подписью кода с помощью отличного инструментария Fastlane . Авторы приложили немало усилий, чтобы эффективно автоматизировать создание, подписывание приложений для 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 и переключитесь на вновь созданный профиль обеспечения, имя которого вы только что увидели в выводе команды.

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

Томек Джейнер
источник
Прочитав часть « Настройки сборки», я понял, что могу выбрать, какой сертификат использует профилирование. Спасибо.
Карлос Линарес
12

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

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

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

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

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

Запорожченко Александр
источник
Большое спасибо .. Это помогло мне решить мою проблему
Gokul G
9

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

Аршад Шаик
источник
Могу подтвердить, была проблема в моем случае тоже.
атерешков
5

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

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

Xcode 11

Это ошибка, которую я получил

Профиль обеспечения "XXX" не включает в себя сертификат подписи "Apple Development: XXX (XXX)". `` `

Теперь Xcode 11 автоматически создал сертификат «Apple Development: XXX», который действителен для всех платформ

https://developer.apple.com/account/resources/certificates/list

Вам просто нужно

  1. Перейти на https://developer.apple.com
  2. Перейдите в свой профиль обеспечения
  3. Проверьте, выбран ли этот сертификат
Тед
источник
4

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

Чтобы найти их:

  1. Открытый доступ к брелку
  2. Нажмите «Ключи» под категорией в боковом левом меню.
  3. Ищите iOS Developer: ... "ключи, к которым не привязан сертификат
  4. Я удалил их, и проблема ушла

Выделенный ключ на картинке - это образец закрытого ключа без сертификата.

Выделенный элемент был одним из ключевых, вызывающих проблемы, удаление его решало проблему

Дилан ж
источник
3

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

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

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

максвелл
источник
2

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

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

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

Jprofficial
источник
2

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

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

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

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

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

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

С уважением,

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


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

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

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

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

Мед
источник
2

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

cumanzor
источник
Спасибо! - В моем случае в разделе «Цель»> «Параметры сборки»> «Идентификация подписи кода»> «Релиз» было выбрано iOS Developer вместо Distribution iOS.
Фиах Рейд
2

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

Найл Кехо
источник
2

Проблема, кажется, начинает происходить в Xcode 11 .

  • Перейти к Apple Developer
  • Найти правильный профиль обеспечения
  • Нажмите Редактировать в правом верхнем углу
  • Выберите опцию (Распространение) в Сертификатах. (Я думаю, что это новый тип опции / сертификата, который представил Apple, хотя я не смог найти никакой документации)
  • Необязательно: Удалите все свои профили предоставления в (~ / Library / MobileDevice / Provisioning Profiles /),
    перейдите в Xcode -> Настройки-> Учетные записи-> Загрузить профили вручную

введите описание изображения здесь

Mike.R
источник
Не работает для меня
Shourob Datta
1

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

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

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

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

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

Шоаиб Багван
источник
0

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

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

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

tristanl
источник
0

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

Ручьи
источник
0

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

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

Somya
источник
0

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

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

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

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

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

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

AG
источник
0

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

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

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

javatogo
источник
0

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

Исправить:

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

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

Джек Виал
источник
0

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

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

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

Ю Чай
источник