Xcode 8 показує помилку, що профіль надання не містить сертифікат підписання


224

Xcode 8 показує помилку, що профіль надання не містить сертифікат підписання.

Ця проблема стосується Xcode-8 лише з Xcode 7, тим же профілем забезпечення, що містить відповідний ідентифікований сертифікат.


1
Вам потрібно: а) оновити профіль надання потрібним сертифікатом або б) встановити сертифікат (можливо, вам знадобиться перенести його з іншого mac з приватним ключем, якщо він не був створений у вашому mac)
pedrouan,

1
а) оновіть ваш профіль надання необхідних сертифікатів. - Я це вже робив, але не працював. B) встановіть сертифікат - certificat вже встановлений і був створений на одній машині, тому мені не потрібно експортувати будь-який ключ чи щось таке. І, як я сказав, немає жодної проблеми з xcode 7 в одній машині. це означає, що з установкою не виникає жодних проблем
Satish Mavani,

Перевірте це, зовсім свіжий: stackoverflow.com/questions/39565906 / ...
pedrouan

Відповіді:


252

Існує багато способів виправити це, наприклад включення автоматичного підписання тощо. Але якщо ви хочете зрозуміти причину цієї помилки, вам потрібно переглянути повідомлення про помилку.

У ньому йдеться про те, що профіль, який ви вибрали на вкладці "Загальні", не містить сертифікату підписання, який ви вибрали у "Налаштуваннях збірки" -> "Ідентифікація підпису коду".

Зазвичай це відбувається, якщо для ідентифікації налагодження було вибрано сертифікат розповсюдження в розділі "Налаштування збірки" -> "Ідентифікатор підпису коду".

Якщо це відбувається в розділі "Підпис (налагодження)", можливо, що "Ідентифікація підпису" -> "Розробка iOS" не включена в профіль надання.


49
Ви, сер, сертифікований гангстер.
J.beenie

4
Оце Так! Це фактична відповідь на поставлене запитання. Цікаво, чому це не прийнята відповідь. Дякую, пане!
Джунаїд Мухтар

1
Розумний шлях повинен бути у кожного розумного диявола.
Алмас Адільбек

1
Це має бути позначено як прийняту відповідь, що пояснює проблему та рішення, а не випадкове генерування Xcode.
Andreas777

1
Це геніальна відповідь
грішник

186

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

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

Видалення відповідності, яка не мала приватного ключа, змусила Xcode знову виявити правильну ідентичність.


Дякую! Точно те, що тут відбувалося
Томас Кальмон

9
Не виправили проблему для мене. Ймовірно, це одне з тих питань, які можуть виникнути з декількох першопричин.
Аш

3
Усі мої серти мають приватні ключі, тому, безумовно, причина може бути різною.
RAM237

8
У моєму випадку було декілька сертифікатів (= особи підпису) у брелоку для входу з тим самим іменем, але різних дат (зверніть увагу на системний брелок, я отримав лише той, який був з правильною датою). Видалення всіх, крім правильного, зробило трюк.
RAM237

5
Подібно до @ RAM237, у мене є декілька цертів з тим самим іменем, які все ще мають приватні ключі. Видалення всіх, крім правильних, допомогло.
1717 року

87

Щоб виправити це,

Я просто вмикаю "Автоматичне керування підписом" на загальній вкладці налаштувань проекту, перш ніж включати, що я боявся, що це може мати деякі побічні ефекти, але як тільки я вмикаю, це працює для мене.

Сподіваюся, це допомагає іншим! введіть тут опис зображення


Вирішіть цю проблему, але отримав цю помилку, "<невідомо>: 0: помилка: Swift не підтримує команду SDK" iPhoneSimulator9.3.sdk "Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ bin / swiftc не вдалося з кодом виходу 1 "
Мохін Куреші

1
Спробуйте перезавантажити ваш тренажер та видалити отримані дані.
Сатіш Мавані

Я спробував, але не вийшло. його в основному показано завдяки Alamofire. Я думаю , що скор 3 несумісний з Alamofire 3.0
Мухсин Куреши

Я намагався те ж саме, але даючи мені цю помилку *, суперечливі налаштування надання. * автоматично підписується для розробки, але конфліктуючу особу, що підписує код, розповсюджується в iPhone вручну. В редакторі налаштувань збірки встановіть значення ідентичності підпису коду на "iPhone Developer" або переключіться на ручне підписання в редакторі проекту.
користувач3625547

22
Найгірша ідея, ви втрачаєте всі свої конфігурації, дозволяючи xcode обробляти ваш серт. Ледачий гад Xcode просто генерує нові серти!
Силом

64

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

Відкрийте keyChain Access, щоб побачити, чи є дві ті самі Сертифікати. Якщо є дві або більше, просто видаліть одну і вона буде працювати :)


Це справді допомогло.
Рон

Якщо хтось зустрічає цю людину на вулиці, купіть йому пиво. Спасибі
Грег Хілстон

2
Його не можна побачити на вулиці, оскільки пінгвінів не на вулицях, а в морі. до речі. Дякую.
MRizwan33

Це було для мене :)
slippytoad

34

Я випробував цю проблему після нещодавнього оновлення Xcode до версії 9.3. Проблема полягала в підписанні коду (під налагодженням), сертифікат дистрибутива був встановлений замість сертифікату розробки, тому це не дозволило мені встановити додаток на своїх пристроях.

Ось що я зробив для вирішення цього питання.

Проект -> Цілі -> Виберіть додаток -> Налаштування збірки -> Ідентифікатор підпису коду -> Налагодження -> Двічі торкніться "Розподіл iPhone" та змініть його на "Розробник iPhone".


Це було так просто, але боролися з цим деякий час. Дякую, ласкавий пане.
JM-AGMS

Чудово. Це працювало ідеально. Чому це не сприймає як правильну відповідь?
ZhengGe Che

27

Я зняв галочку, а потім перевірив опцію "Автоматично керувати підписом". Це зафіксувало це для мене.


З’явилося діалогове вікно із запитом, чи хочу я ввімкнути автоматичне підписання. Хоча я потрапив на скасування, це все одно спрацювало.
епріус

@JamesWierzba - це загальне-> підписання. Так само, як у відповіді Сатиша Мейвена вище.
Loke

ВЕЛИКІЙ ВІДПОВІДЬ
bubibu

Крім того, просто перехід між різними профілями це виправить. Можливо, вам доведеться спочатку очистити ключі за попередньою відповіддю.
MindWire

23

Чому варто автоматично підписувати не вдалося щоразу, поки я просто вручну видалив локальні профілі з: ~ / Library / MobileDevice / Provisioning Profiles

Після цього автоматичний підпис працював ідеально, і він отримав правильні профілі з серверів Apple.

Це стосувалося лише деяких збірок, особливо тих, для яких я створив профілі для годинника вручну.


2
Для мене у мене не було дублікатів, але після видалення та повторного завантаження профілів надання послуг, здавалося, працює належним чином.
Джуліан К

2
Я спробував все інше, і нічого не вийшло, поки не видалив існуючі профілі та дозволив Xcode повторно завантажити їх
Рон Мищук

1
Вибачте, як я можу отримати доступ до цих ~ / Library / MobileDevice / Provisioning Profiles? Я шукав у своєму пошуку та не зміг знайти жодної папки "Бібліотека".
Чень Лі Йонг

1
@ChenLiYong Це прихована папка. Натисніть, CMD + Shift + . щоб показати всі приховані файли.
tmuecksch

19

Для тих, хто все ще бореться з цією проблемою в Xcode8. Для мене була дублююча проблема Сертифіката, ось як я її вирішив:

Я прочитав відповідь Ніка, а потім розпочав розслідування. Я перевірив усі ключі та сертифікати у своєму конкретному випадку (всередині ~ / Бібліотека / Keychains / System.keychain).

Коли я відкрив файл, я виявив, що у мене є два сертифікати розповсюдження iPhone (це був сертифікат, який Xcode запитував у мене), один із приватним ключем розповсюдження iOS, який я використовую з самого початку, та інший сертифікат розповсюдження iPhone, який приватний ключ мав не відоме мені ім’я (iOS Distribution: NAME). Я видалив цей останній сертифікат, знову запустив Xcode і проблеми не було. xCode не змогла вирішити цей конфлікт, і саме тому він постійно давав помилку підпису.

Перевірте свої брелки, можливо, у вас є повторюваний сертифікат.


Саме так сталося зі мною.
funct7

Це саме питання в моєму випадку, у мене виникло плутанина при налаштуванні Fastlane Match, і в мене було 3 дублікатів ключа в моєму
Minh Thai

18

Якщо ви використовуєте підписання вручну (що я, безумовно, заохочую), ця помилка може виникнути, оскільки Xcode вважає, що він повинен підписати збірку реліз із сертифікатом розробника, який, очевидно, не входить у профіль надання випуску.

Існує налаштування збірки, яке визначає, який сертифікат слід використовувати для конфігурації збірки. Щоб змінити це, перейдіть до створення параметрів та знайдіть Ідентифікатор підпису коду . При розширенні повинні бути окремі рядки для кожної конфігурації збірки (як правило, налагодження та випуск), у другому стовпці її обрана ідентичність (зазвичай iOS Developer або iOS Distribution). Переконайтеся, що для кожної конфігурації збірки встановлено правильну ідентичність.

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


2
ідеальна відповідь,
Насір

1
Дякую! Це було саме те, що мені було потрібно.
Amadeu Cavalcante Filho

12

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

Отже, у згаданому наборі є інструмент, sighякий магічно вирішує будь-які проблеми з підписанням, звідси і назва :) Приємно, що цей інструмент інкапсулює знання про загальні проблеми підписання та зможе виявити та вирішити більшість із них.

Fastlane встановлюється як дорогоцінний камінь Ruby:

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...

Нарешті, перейдіть до Налаштування збірки -> Підписання та перейдіть до новоствореного профілю забезпечення, ім'я якого ви побачили у командному висновку.

Цей приклад стосується проблеми підпису коду розробки (працює на пристрої). Перевірте зіткнення документації на всі інші варіанти.


Прочитавши частину Налаштування збірки, я зрозумів, що можу вибрати, який сертифікат використовує профілювання. Дякую.
Карлос Лінарес

12

Була однакова помилка. Профілі здаються оновленими, додаються нові сертифікати, я навіть перевіряв це під час завантаження. Також відкликані колишні сертифікати розробника, виключені з профілю надання. Але Xcode все ще питає мене про попередні сертифікати з помилкою:

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

Отже, що я зробив, щоб виправити це:

  1. Ідіть Build Settings-> Signing->Code Signing Identity
  2. Знайдіть усі сертифікати "FORMER_DEVELOPER" і виберіть необхідні.

Сподіваюся, це комусь допоможе.


Велике спасибі .. Це допомогло мені вирішити мою проблему
Gokul G

9

У моєму випадку у брелка у мене було два сертифікати з однаковою назвою, я видалив один із сертифікатів, який дублюється, і це вирішило проблему.


Можу підтвердити, чи була проблема і в моєму випадку.
атерешков

5

"Увімкнути автоматичне підписання", а потім вибрати команду зі спадного меню допомогло мені у цій точній проблемі.


4
  1. Видаліть сертифікат розробника, який не має приватного ключа.
  2. Видаліть профіль забезпечення зі свого пристрою за допомогою переходу в папку (~ / Бібліотека / MobileDevice / Профілі надання)
  3. Потім спочатку поставте прапорець, а потім зніміть прапорець Автоматично керувати підписом у налаштуваннях проекту з командою вибору.
  4. Співайте в обліковому записі розробника Apple і відредагуйте профіль надання, вибираючи всі доступні сертифікати розробника, а потім завантажте та додайте до XCODE.
  5. Виберіть профіль надання та особу підпису коду в налаштуваннях складання проекту

4

Xcode 11

Це помилка, яку я отримав

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

Тепер Xcode 11 автоматично створив сертифікат "Apple Development: XXX", який дійсний для всіх платформ

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

Вам просто потрібно

  1. Перейдіть на сторінку https://developer.apple.com
  2. Перейдіть до свого профілю резервування
  3. Перевірте, чи вибрано цей сертифікат

4

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

Щоб знайти їх:

  1. Відкрийте доступ до брелка
  2. Клацніть "Клавіші" під категорією в лівому меню ліворуч
  3. Шукайте iOS Developer: ... "ключі, не пов'язані з ними
  4. Я видалив їх, і проблема пішла

Виділена клавіша на малюнку - зразок приватного ключа без сертифіката.

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


3

У мене така ж проблема. Я змінив mac. І коли я завантажив сертифікат Xcode, я отримав повідомлення про помилку: "Помилка полягає в тому, що профіль захисту не містить підпис сертифіката".

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

2) У Xcode: Файл проекту => Підпис (Налагодження) => Профіль надання = = Імпортувати профіль => Вибрати файл із 1


2

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

Для мене було рішення, що коли я пішов і створив два нові Сертифікати, я ТАКОЖ повинен був увійти в свої профілі резервування та додати (як при розподілі, так і в розробці) нові сертифікати до профілів резервування, щоб їх так розпізнали. Після цього та завантаження xcode видалив усі помилки, і це добре.

Сподіваюся, це комусь допоможе!


2

Я отримав один із таких листів від Apple:

Шановний Джон Доу,

Наступний сертифікат або анульовано членом вашої команди з розробки, або закінчився термін дії:

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

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

Це не впливає на додатки, які ви надіслали в App Store, або на можливість оновлення програм. Якщо ви використовуєте профілі резервування, що містять цей сертифікат, вони повинні бути відтворені, перш ніж їх можна повторно використовувати. Докладніше див. У розділі "Огляд підпису програми" у довідці Xcode.

З найкращими побажаннями,

Підтримка програми для розробників Apple


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

Рішення полягає в:

  • увійдіть в обліковий запис розробника Apple
  • видалити / скасувати попередні сертифікати, створені на моє ім’я.
  • додати новий сертифікат до профілю надання. Ви можете ідентифікувати новіший за терміном їх дії
  • завантажте їх знову з Xcode. Xcode >> Обліковий запис >> Завантажити всі профілі
  • перезапустити Xcode

Я особисто не мав такого доступу. Цей доступ був доступний лише адміністратору нашої команди, тому я не маю скріншотів, ані певних, чи ці кроки на 100% вірні.


2

Я ще не бачив цього згаданого, але якщо у вас все ще виникають проблеми після відтворення профілів резервування, видалення існуючих у вашій папці Профілі забезпечення, перевірки наявності дублівок у вашому брелоку тощо (усі інші відповіді ITT), відкрийте свій Ціль> Налаштування збірки> Підписання коду та переконайтеся, що там все виглядає послідовно. Наприклад, я змінив ідентифікацію підпису коду для налагодження на ідентифікацію розповсюдження, яка, очевидно, не працюватиме, оскільки профіль забезпечення надання розробки не має сертифікату розповсюдження і в першу чергу викликав помилку.


Дякую! - У моєму випадку в розділі Ціль> Налаштування збірки> Ідентифікатор підпису коду> Випуск встановлено для iOS Developer замість дистрибутива iOS.
Fiach Reid

2

Якщо ви намагаєтеся завантажити додаток до iTunes Connect (ваші профілі надання послуг встановлені на розподіл), перейдіть до Налаштування проекту -> Налаштування збірки -> Підписання коду. Не забудьте встановити всі параметри налагодження та випуску у своєму профілі забезпечення надання дистрибуції.


2

Здається, проблема починається з Xcode 11 .

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

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


Не працює для мене.
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


0

У мене був такий самий випуск, і причина - копійка. У налаштуваннях збірки вибрано неправильний профіль та сертифікат. Я робив це лише за кілька днів. Отже, вам не потрібно вмикати "автоматичний" всередині xcode. Перевірте профілі в налаштуваннях збирання, перш ніж це робити.


0

Спробуйте завантажити сертифікати / профілі безпосередньо з центру учасників, а не робити це з Xcode.

Це працювало для мене, коли я завантажував їх вручну з центру-члена.


0

Я боровся з цим багато днів.

Крок 1: Видалено всі сертифікати, профіль надання, appID, ключ тощо з облікового запису розробника.

Крок 2: Відтворено сертифікати push-сповіщення, профіль надання, ідентифікатор програми тощо.

Крок 3: Видалено всі сертифікати з брелка.

Крок 4: Видалено весь профіль забезпечення з ~ / Library / MobileDevice / Provisioning Profiles.

Крок 5: Додано лише необхідний файл резервування та випробувано. Це чудово працює.


0

Це означає, що вам потрібно виконати будь-яке з наведених нижче дій:

  1. Вам слід було створити сертифікат у Центрі розробників, а потім включити той Сертифікат у профіль надання послуг, який ви імпортуєте в XCode.
  2. В іншому випадку, якщо ви використовуєте сертифікат, створений кимось іншим, тоді змусьте їх поділитися / експортувати вам свій сертифікат та приватний ключ (файл .p12), і вам потрібно включити це у свій брелок. Зверніться сюди

Рішенням №2, коли ви не можете отримати файл сертифіката & .p12 від творця, було б просто перевірити параметр "Автоматично керувати підписом".


0

Це відбувається тому, що профіль надання не може знайти файл для сертифіката, до якого він пов'язаний.

Виправити:

  1. Перевірте, який сертифікат пов’язаний із вашим профілем резервування, натиснувши кнопку "Редагувати" у розділі "Сертифікати, ідентифікатори та профілі" на інформаційній панелі розробників Apple
  2. Завантажте сертифікат з інформаційної панелі
  3. Двічі клацніть файл, щоб встановити його у свій брелок
  4. Перетягніть файл у Xcode, щоб бути впевненим, що він пов'язаний

Помилка має бути знищена зараз.


0

Ця проблема пов’язана з тим, що приватний ключ у сертифікаті у вашому профілі не збігається з таким у вашому брелоку. Я вирішую це шляхом

  1. видалити весь сертифікат розробника iPhone у брелок.
  2. видалити весь сертифікат в обліковому записі Apple.
  3. використовуючи xcode "Керувати сертифікатами", щоб додати сертифікат, колись у вас все ще є сертифікат на вашому Mac, але я не знаю, де він зараз, і якщо він успішно доданий, ваш обліковий запис Apple також відображатиме цей сертифікат, і тоді ви можете створити свій профіль із цим сертифікатом та завантажте ... goto 5
  4. якщо ви використовуєте "Керувати сертифікатами", не можете додати сертифікат, ви можете створити новий сертифікат і виконувати дії.
  5. закінчити.

така ж відповідь із питанням підписання коду у Xcode версії 8 .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.