Xcode 8 показывает ошибку, что профиль обеспечения не включает сертификат подписи
Xcode 8 показывает ошибку, что профиль обеспечения не включает сертификат подписи.
Эта проблема связана с Xcode-8 только с Xcode 7, тот же профиль обеспечения, показывающий связанный идентифицированный сертификат.
35 ответов
Чтобы исправить это,
Я просто включаю "Автоматическое управление подписанием" на вкладке "Общие настройки проекта". Прежде чем включить, я боялся, что у него могут быть некоторые побочные эффекты, но как только я включу, это работает для меня.
Есть много способов исправить это, например, включить автоматическую подпись и т. Д. Но если вы хотите понять причину этой ошибки, вам нужно взглянуть на сообщение об ошибке.
В нем говорится, что профиль обеспечения, выбранный вами на "вкладке Общие", не содержит сертификат подписи, выбранный вами в "Настройках сборки" -> "Идентификационные данные подписи кода".
Обычно это происходит, если для идентификатора отладки был выбран сертификат распространения в "Настройках сборки" -> "Идентификация подписи кода".
Если это происходит в разделе "Подписывание (отладка)", это также может означать, что "Идентификация подписи" -> "Разработка iOS" не включена в профиль обеспечения.
Проверьте вашу связку ключей для идентичностей, которые пропускают закрытый ключ. У меня было несколько сертификатов распространения, установленных для одной команды, в одном из которых отсутствовал закрытый ключ. Xcode проверял только первую совпадающую идентификацию в цепочке для ключей и автоматически использовал ее, в отличие от той, которая включала закрытый ключ.
Удаление совпадающего идентификатора, у которого не было закрытого ключа, заставило XCode снова обнаружить правильное удостоверение.
Для тех, кто по каким-то причинам должен продолжать использовать не auotamatic
Откройте keyChain Access, чтобы увидеть, есть ли два одинаковых сертификата, если их два или более, просто удалите один, и он будет работать:)
Я столкнулся с этой проблемой после недавнего обновления XCode до версии 9.3. Проблема заключалась в том, что для подписи кода (в режиме отладки) для сертификата был установлен сертификат распространения вместо сертификата разработки, поэтому это не позволило мне установить приложение на мои устройства.
Вот что я сделал, чтобы решить эту проблему.
Проект -> Цели -> Выберите приложение -> Настройки сборки -> Идентификация подписи кода -> Отладка -> Дважды нажмите "Распространение iPhone" и измените его на "Разработчик iPhone".
Я снял флажок, а затем установил флажок "Автоматически управлять подписью". Это исправило это для меня.
Для чего стоит автоматическая подпись, которая не удалась каждый раз, пока я просто вручную не удалил локальные профили в: ~/Library/MobileDevice/Provisioning Profiles
После этого автоматическая подпись работала отлично и получала нужные профили с серверов Apple.
Это влияло только на некоторые сборки, особенно те, для которых я вручную создал профили для часового приложения.
Если вы используете ручную подпись (что я определенно рекомендую), эта ошибка может возникать из-за того, что Xcode считает, что должна подписать сборку релиза с сертификатом разработчика, который явно не включен в профиль обеспечения релиза.
Существует параметр сборки, который определяет, какой сертификат должен использоваться для какой конфигурации сборки. Чтобы изменить его, перейдите к настройкам сборки и выполните поиск идентификатора подписи кода. Когда развернуто, должны быть отдельные строки для каждой конфигурации сборки (обычно Debug и Release) с выбранным идентификатором во втором столбце (обычно iOS Developer или iOS Distribution). Убедитесь, что для каждой конфигурации сборки установлено правильное удостоверение.
В некоторых случаях конфигурации сборки также могут быть расширены. Убедитесь, что также его подэлементы установлены на правильные идентификаторы.
Была такая же ошибка. Профили обновлены, добавлены новые сертификаты, я даже проверял их при загрузке. Также отозваны сертификаты бывшего разработчика, исключены из профиля предоставления. Но Xcode все еще спрашивает меня о предыдущих сертификатах с ошибкой:
No certificate for team 'MY_TEAM' matching 'iPhone Developer: FORMER_DEVELOPER' found
Итак, что я сделал, чтобы это исправить:
- Идти
Build Settings
->Signing
->Code Signing Identity
- Найдите все сертификаты "FORMER_DEVELOPER" и выберите нужные.
Надеюсь, это кому-нибудь поможет.
Для тех, кто все еще борется с этой проблемой в Xcode8. Для меня была проблема с дубликатом сертификата, вот как я ее решил:
Я прочитал ответ Ника и начал расследование. Я проверил все ключи и сертификаты в моем конкретном случае (внутри ~/Library/Keychains/System.keychain).
Открыв файл, я обнаружил, что у меня есть два сертификата распространения iPhone (это был сертификат, который запрашивал меня XCode), один с закрытым ключом распространения iOS, который я использую с самого начала, и другой сертификат распространения iPhone, который Закрытый ключ имел имя (iOS Distribution:NAME), которое мне не было знакомо. Я удалил этот последний сертификат, снова запустил Xcode и проблема исчезла. xCode не смог разрешить этот конфликт, и поэтому постоянно выдавал ошибку подписи сертификата.
Проверьте брелки, возможно, у вас есть дубликат сертификата.
Вы также можете решить проблемы с подписью кода с помощью отличного инструментария 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 и переключитесь на вновь созданный профиль обеспечения, имя которого вы только что увидели в выводе команды.
Этот пример относится к проблеме подписи кода разработки (работает на устройстве). Проверьте документацию вздоха для всех других вариантов.
В моем случае, в цепочке для ключей у меня было два сертификата с тем же именем, я удалил один сертификат, который является дубликатом, тогда это решило проблему.
У меня остались закрытые ключи от сертификатов, которые я отозвал, сертификаты пропали, но не закрытые ключи. Их удаление решило проблему.
Чтобы их найти:
- Открыть доступ к связке ключей
- Нажмите "Ключи" под категорией в боковом левом меню.
- Найдите ключи iOS Developer: ...", к которым не привязан сертификат.
- Я удалил их и проблема исчезла
Выделенный ключ на картинке - это образец закрытого ключа без сертификата.
Потому что я не видел этого конкретного ответа:
Моя проблема заключалась в том, что мне нужно было подписать вручную. Итак, моя ошибка заключалась в том, что в настройках сборки -> Подписание кода -> Идентификация подписи кода
У меня были правильно установлены варианты отладки (стиль автоматической подписи и сертификат разработки Apple), постановка и выпуск (вручную и распространение Apple (adHoc)).
То, что я НЕ установил правильно (из-за некоторой ошибочной логики в моем понимании), было значением "ANY IOS SDK". Как только я установил для него тот же ручной сертификат Apple Distribution, ошибка исчезла.
Изначально у меня было установлено автоматическое значение "Распространение iOS", потому что я полагал, что это будет лучше обрабатываться автоматически, поскольку я не знал, что это означает. все еще нет. ну, надеюсь, это поможет
"Включить автоматическую подпись", а затем выбор команды из выпадающего меню помогли мне решить эту проблему.
- Удалите сертификат разработчика, у которого нет закрытого ключа.
- Удалите профиль обеспечения с вашего компьютера, используя папку "Перейти к папке" (~/Library/MobileDevice/ "Provisioning Profiles")
- Затем сначала отметьте, а затем снимите флажок Автоматически управлять подписью в настройках проекта, выбрав команду.
- Войдите в учетную запись разработчика Apple и отредактируйте профиль обеспечения, выбрав все доступные сертификаты разработчика, затем загрузите и добавьте в XCODE.
- Выберите профиль обеспечения и идентификацию подписи кода в настройках сборки проекта
Xcode 11
Это ошибка, которую я получил
Профиль подготовки "XXX" не включает сертификат подписи "Apple Development: XXX (XXX)".``
Теперь Xcode 11 автоматически создает сертификат "Apple Development: XXX", который действителен для всех платформ.
Вам просто нужно
- Перейдите на https://developer.apple.com/.
- Перейдите в свой профиль подготовки
- Проверьте, выбран ли этот сертификат
У меня та же проблема. Я сменил макинтош И когда я скачал сертификат XCode, вы получаете сообщение об ошибке: "Ошибка в том, что профиль безопасности не включает подпись сертификата".
1) Перейдите на https://developer.apple.com/account/ios/profile/limited/edit Выберите проект => изменить => Сертификаты => Выбрать все => Создать => Загрузить.
2) В Xcode: файл проекта => Подписание (отладка) => Профиль обеспечения => Импортировать профиль => Выбрать файл с 1
Проблема, кажется, начинает происходить в Xcode 11.
- Перейти к разработчику Apple
- Найдите правильный профиль обеспечения
- Нажмите Edit в правом верхнем углу
- Выберите опцию (Распространение) в Сертификатах. (Я думаю, что Apple представила новый вариант / тип сертификата, хотя мне не удалось найти никакой документации)
- Необязательно: удалите все профили подготовки в (~/Library/MobileDevice/Provisioning Profiles/),
перейдите в Xcode ->Preferences->Accounts->Download Manual Profiles.
Для меня ни одно из вышеперечисленных решений не сработало. Я мигрировал с двух старых Mac на новый Mac, пытаясь заставить профили выпуска / отладки работать на XCode БЕЗ XCode, автоматически управляющего ими.
Решением для меня было то, что когда я пошел и создал два новых сертификата, я также должен был зайти в мои профили обеспечения и добавить (как в дистрибутиве, так и в dev) новые сертификаты в профили обеспечения, чтобы они их распознавали. После этого и загрузки, xcode удалил все ошибки, и это хорошо.
Надеюсь, это поможет кому-то!
Я получил одно из этих писем от Apple:
Дорогой Джон Доу,
Следующий сертификат был отозван членом вашей команды разработчиков или срок его действия истек:
Сертификат: iOS Разработка
Название команды: Honey Team, LLC
Это не влияет на приложения, которые вы отправили в App Store, или на вашу способность обновлять свои приложения. Если вы используете профили обеспечения, содержащие этот сертификат, они должны быть воссозданы, прежде чем их можно будет повторно использовать. Для получения дополнительной информации см. Раздел "Обзор подписывания приложения" справки XCode.
С наилучшими пожеланиями,
Поддержка программ Apple для разработчиков
Я создал новый сертификат, который отозвал предыдущий сертификат (локально и на любом другом компьютере разработчика). Чтобы это работало, я должен загрузить новые профили обеспечения.
Решение состоит в том, чтобы:
- войдите в учетную запись разработчика Apple
- удалить / отозвать предыдущие сертификаты, созданные на мое имя.
- добавьте новый сертификат в профиль обеспечения. Вы можете определить более новый по сроку годности
- загрузите их снова от Xcode. Xcode >> Аккаунт >> Скачать все профили
- перезапустите Xcode
Лично у меня не было такого доступа. Этот доступ был доступен только для администратора нашей команды, поэтому у меня нет скриншотов, и я не уверен, что эти шаги на 100% правильные.
Если вы пытаетесь загрузить свое приложение в iTunes Connect (ваши профили инициализации настроены на распространение), выберите "Настройки проекта" -> "Настройки сборки" -> "Подписывание кода". Обязательно установите все параметры отладки и выпуска в свой профиль обеспечения распространения.
Я еще не упоминал об этом, но если у вас все еще есть проблемы после воссоздания ваших профилей обеспечения, удаления существующих в вашей папке Provision Profiles, проверки на наличие дубликатов в вашей связке ключей и т. Д. (Все другие ответы ITT), откройте свой Target > Build Settings > Code Signing и убедитесь, что все выглядит согласованно. Например, я изменил "Идентификатор подписи кода для отладки" на "Распределение", что, очевидно, не сработает, поскольку профиль обеспечения разработки не имеет сертификата распространения и изначально вызывал ошибку.
Это может вам помочь
Профиль распространения iOS
Сценарий:
Другой разработчик дал мне сертификат.
Я просто установил это
Ошибка:
Xcode 8 показывает ошибку, что профиль подготовки не включает сертификат подписи
Что было не совсем правильной ошибкой.
Ошибка заключалась в отсутствии закрытого ключа
Предпочтение -> Учетные записи -> Команда двойного щелчка
Позвоните разработчику, чтобы он отправил закрытый ключ.
и установил его в свой локальный
ВТОРОЕ РЕШЕНИЕ
Создайте новый сертификат.
Измените существующий профиль обеспечения
Включите свежий сертификат
Сохранить и скачать
Вот шаги, решенные для меня (для тех, кто сталкивается с той же проблемой в XCode 9.2):
Просто вручную удалили локальные профили в ~/Library/MobileDevice/Provisioning Profiles.
Удалил и создал все сертификаты и профиль обеспечения из аккаунта разработчиков.
Удалил аккаунт разработчиков из Xcode и заново его добавил.
Решил мою проблему!:-)
Это означает, что вам нужно выполнить одно из следующих действий:
- Вы должны были создать сертификат в Центре разработчика, а затем включить этот сертификат в профиль обеспечения, который вы импортируете в XCode.
- Иначе, если вы используете сертификат, созданный кем-то другим, попросите их поделиться / экспортировать свой сертификат и закрытый ключ (файл.p12) вам, и вам нужно включить его в свою цепочку для ключей. Обратитесь сюда
Решением проблемы №2, когда вы не можете получить сертификат и файл.p12 от создателя, было бы просто установить флажок "Автоматически управлять подписанием".
Это происходит потому, что профиль обеспечения не может найти файл для сертификата, с которым он связан.
Чинить:
- Чтобы узнать, какой сертификат связан с вашим профилем обеспечения, нажмите кнопку "Изменить" в своем профиле обеспечения в разделе "Сертификаты, идентификаторы и профили" на панели инструментов Apple Developer.
- Скачать сертификат с панели приборов
- Дважды щелкните файл, чтобы установить его в цепочку для ключей
- Перетащите файл в Xcode, чтобы быть уверенным, что он связан
Ошибка должна исчезнуть сейчас.
Я боролся с этим в течение многих дней.
Шаг 1. Удалите все сертификаты, профиль обеспечения, appID, ключ и т. Д. Из учетной записи разработчика.
Шаг 2. Создайте сертификаты push-уведомлений, профиль обеспечения, идентификатор приложения и т. Д.
Шаг 3: Удалил все сертификаты из цепочки для ключей.
Шаг 4. Очистите весь профиль обеспечения из ~/Library/MobileDevice/Provisioning Profiles.
Шаг 5: Добавлен только необходимый файл обеспечения и протестирован. Работает нормально.
Эта проблема связана с тем, что закрытый ключ в сертификате в вашем профиле не совпадает с ключом в цепочке для ключей. Я разрешаю это
- удалить все сертификаты iPhone Developer в связке ключей.
- удалить все сертификаты в учетной записи Apple.
- используя xcode "Manage Certificates" для добавления сертификата, иногда у вас все еще есть сертификат на вашем Mac, но я не знаю, где он сейчас находится, и в случае успешного добавления ваша учетная запись Apple также отобразит этот сертификат, а затем вы сможете создать свой сертификат. профиль с этим сертификатом и скачать... перейти к 5
- если вы используете "Управление сертификатами", не можете добавить сертификат, вы можете создать новый сертификат и сделать шаги.
- Конец.
тот же ответ с проблемой подписания кода в Xcode версии 8.
Нажатие, но затем отмена "Включить автоматическую подпись" работало для меня, хотя фактическое изменение было:
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
или в Xcode это называется Always Embed Swift Standard Libraries