Xcode 8 показує помилку, що профіль надання не містить сертифікат підписання.
Ця проблема стосується Xcode-8 лише з Xcode 7, тим же профілем забезпечення, що містить відповідний ідентифікований сертифікат.
Xcode 8 показує помилку, що профіль надання не містить сертифікат підписання.
Ця проблема стосується Xcode-8 лише з Xcode 7, тим же профілем забезпечення, що містить відповідний ідентифікований сертифікат.
Відповіді:
Існує багато способів виправити це, наприклад включення автоматичного підписання тощо. Але якщо ви хочете зрозуміти причину цієї помилки, вам потрібно переглянути повідомлення про помилку.
У ньому йдеться про те, що профіль, який ви вибрали на вкладці "Загальні", не містить сертифікату підписання, який ви вибрали у "Налаштуваннях збірки" -> "Ідентифікація підпису коду".
Зазвичай це відбувається, якщо для ідентифікації налагодження було вибрано сертифікат розповсюдження в розділі "Налаштування збірки" -> "Ідентифікатор підпису коду".
Якщо це відбувається в розділі "Підпис (налагодження)", можливо, що "Ідентифікація підпису" -> "Розробка iOS" не включена в профіль надання.
Перевірте свою брелок на предмет ідентичності, на якій відсутній приватний ключ. У мене було встановлено кілька сертифікатів розповсюдження для однієї команди, в одному з яких не було приватного ключа. Xcode перевіряв лише першу відповідність ідентичності в брелоку і автоматично використовував це на відміну від того, який включав приватний ключ.
Видалення відповідності, яка не мала приватного ключа, змусила Xcode знову виявити правильну ідентичність.
Щоб виправити це,
Я просто вмикаю "Автоматичне керування підписом" на загальній вкладці налаштувань проекту, перш ніж включати, що я боявся, що це може мати деякі побічні ефекти, але як тільки я вмикаю, це працює для мене.
Для тих, хто з певних причин повинен продовжувати використовувати не аутотаматичні
Відкрийте keyChain Access, щоб побачити, чи є дві ті самі Сертифікати. Якщо є дві або більше, просто видаліть одну і вона буде працювати :)
Я випробував цю проблему після нещодавнього оновлення Xcode до версії 9.3. Проблема полягала в підписанні коду (під налагодженням), сертифікат дистрибутива був встановлений замість сертифікату розробки, тому це не дозволило мені встановити додаток на своїх пристроях.
Ось що я зробив для вирішення цього питання.
Проект -> Цілі -> Виберіть додаток -> Налаштування збірки -> Ідентифікатор підпису коду -> Налагодження -> Двічі торкніться "Розподіл iPhone" та змініть його на "Розробник iPhone".
Я зняв галочку, а потім перевірив опцію "Автоматично керувати підписом". Це зафіксувало це для мене.
Чому варто автоматично підписувати не вдалося щоразу, поки я просто вручну видалив локальні профілі з: ~ / Library / MobileDevice / Provisioning Profiles
Після цього автоматичний підпис працював ідеально, і він отримав правильні профілі з серверів Apple.
Це стосувалося лише деяких збірок, особливо тих, для яких я створив профілі для годинника вручну.
CMD + Shift + .
щоб показати всі приховані файли.
Для тих, хто все ще бореться з цією проблемою в Xcode8. Для мене була дублююча проблема Сертифіката, ось як я її вирішив:
Я прочитав відповідь Ніка, а потім розпочав розслідування. Я перевірив усі ключі та сертифікати у своєму конкретному випадку (всередині ~ / Бібліотека / Keychains / System.keychain).
Коли я відкрив файл, я виявив, що у мене є два сертифікати розповсюдження iPhone (це був сертифікат, який Xcode запитував у мене), один із приватним ключем розповсюдження iOS, який я використовую з самого початку, та інший сертифікат розповсюдження iPhone, який приватний ключ мав не відоме мені ім’я (iOS Distribution: NAME). Я видалив цей останній сертифікат, знову запустив Xcode і проблеми не було. xCode не змогла вирішити цей конфлікт, і саме тому він постійно давав помилку підпису.
Перевірте свої брелки, можливо, у вас є повторюваний сертифікат.
Якщо ви використовуєте підписання вручну (що я, безумовно, заохочую), ця помилка може виникнути, оскільки Xcode вважає, що він повинен підписати збірку реліз із сертифікатом розробника, який, очевидно, не входить у профіль надання випуску.
Існує налаштування збірки, яке визначає, який сертифікат слід використовувати для конфігурації збірки. Щоб змінити це, перейдіть до створення параметрів та знайдіть Ідентифікатор підпису коду . При розширенні повинні бути окремі рядки для кожної конфігурації збірки (як правило, налагодження та випуск), у другому стовпці її обрана ідентичність (зазвичай iOS Developer або iOS Distribution). Переконайтеся, що для кожної конфігурації збірки встановлено правильну ідентичність.
У деяких випадках конфігурації збірки також можна розширити. Переконайтесь, що також його підпункти встановлені на правильну тотожність.
Ви також можете вирішити проблеми з підписанням коду за допомогою великого набору інструментів 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...
Нарешті, перейдіть до Налаштування збірки -> Підписання та перейдіть до новоствореного профілю забезпечення, ім'я якого ви побачили у командному висновку.
Цей приклад стосується проблеми підпису коду розробки (працює на пристрої). Перевірте зіткнення документації на всі інші варіанти.
Була однакова помилка. Профілі здаються оновленими, додаються нові сертифікати, я навіть перевіряв це під час завантаження. Також відкликані колишні сертифікати розробника, виключені з профілю надання. Але Xcode все ще питає мене про попередні сертифікати з помилкою:
No certificate for team 'MY_TEAM' matching 'iPhone Developer: FORMER_DEVELOPER' found
Отже, що я зробив, щоб виправити це:
Build Settings
-> Signing
->Code Signing Identity
Сподіваюся, це комусь допоможе.
У моєму випадку у брелка у мене було два сертифікати з однаковою назвою, я видалив один із сертифікатів, який дублюється, і це вирішило проблему.
Xcode 11
Це помилка, яку я отримав
Профіль "XXX" надає сертифікат для підписання "Apple Development: XXX (XXX)". `` `
Тепер Xcode 11 автоматично створив сертифікат "Apple Development: XXX", який дійсний для всіх платформ
Вам просто потрібно
У мене залишилися приватні ключі від анульованих мені сертифікатів, сертифікатів не було, але не приватних ключів. Видалення їх вирішило проблему.
Щоб знайти їх:
Виділена клавіша на малюнку - зразок приватного ключа без сертифіката.
У мене така ж проблема. Я змінив mac. І коли я завантажив сертифікат Xcode, я отримав повідомлення про помилку: "Помилка полягає в тому, що профіль захисту не містить підпис сертифіката".
1) Перейдіть на сторінку https://developer.apple.com/account/ios/profile/limited/edit Виберіть проект => редагувати => Сертифікати => Вибрати все => Створити => Завантажити
2) У Xcode: Файл проекту => Підпис (Налагодження) => Профіль надання = = Імпортувати профіль => Вибрати файл із 1
Для мене жодне з перерахованих вище рішень не спрацювало. Я переходив з двох старших Mac на новий mac, намагаючись отримати профілі випуску / налагодження, що працюють на Xcode БЕЗ Xcode auto управління ними.
Для мене було рішення, що коли я пішов і створив два нові Сертифікати, я ТАКОЖ повинен був увійти в свої профілі резервування та додати (як при розподілі, так і в розробці) нові сертифікати до профілів резервування, щоб їх так розпізнали. Після цього та завантаження xcode видалив усі помилки, і це добре.
Сподіваюся, це комусь допоможе!
Я отримав один із таких листів від Apple:
Шановний Джон Доу,
Наступний сертифікат або анульовано членом вашої команди з розробки, або закінчився термін дії:
Сертифікат: Розробка iOS
Назва команди: Honey Team, LLC
Це не впливає на додатки, які ви надіслали в App Store, або на можливість оновлення програм. Якщо ви використовуєте профілі резервування, що містять цей сертифікат, вони повинні бути відтворені, перш ніж їх можна повторно використовувати. Докладніше див. У розділі "Огляд підпису програми" у довідці Xcode.
З найкращими побажаннями,
Підтримка програми для розробників Apple
Я створив новий сертифікат, який відкликав попередній сертифікат (локально та на будь-якому іншому mac розробника). Щоб вона працювала, я повинен завантажити нові профілі забезпечення.
Рішення полягає в:
Я особисто не мав такого доступу. Цей доступ був доступний лише адміністратору нашої команди, тому я не маю скріншотів, ані певних, чи ці кроки на 100% вірні.
Я ще не бачив цього згаданого, але якщо у вас все ще виникають проблеми після відтворення профілів резервування, видалення існуючих у вашій папці Профілі забезпечення, перевірки наявності дублівок у вашому брелоку тощо (усі інші відповіді ITT), відкрийте свій Ціль> Налаштування збірки> Підписання коду та переконайтеся, що там все виглядає послідовно. Наприклад, я змінив ідентифікацію підпису коду для налагодження на ідентифікацію розповсюдження, яка, очевидно, не працюватиме, оскільки профіль забезпечення надання розробки не має сертифікату розповсюдження і в першу чергу викликав помилку.
Якщо ви намагаєтеся завантажити додаток до iTunes Connect (ваші профілі надання послуг встановлені на розподіл), перейдіть до Налаштування проекту -> Налаштування збірки -> Підписання коду. Не забудьте встановити всі параметри налагодження та випуску у своєму профілі забезпечення надання дистрибуції.
Здається, проблема починається з Xcode 11 .
Ось вирішені для мене кроки (для тих, хто стикається з тією ж проблемою в XCode 9.2):
Просто видаляйте локальні профілі вручну в ~ / Library / MobileDevice / Provisioning Profiles.
Видалено та створено всі сертифікати та профіль надання з облікового запису розробників.
Видалено обліковий запис розробників з Xcode та повторно додав його.
Вирішив мою проблему! :-)
Я боровся з цим багато днів.
Крок 1: Видалено всі сертифікати, профіль надання, appID, ключ тощо з облікового запису розробника.
Крок 2: Відтворено сертифікати push-сповіщення, профіль надання, ідентифікатор програми тощо.
Крок 3: Видалено всі сертифікати з брелка.
Крок 4: Видалено весь профіль забезпечення з ~ / Library / MobileDevice / Provisioning Profiles.
Крок 5: Додано лише необхідний файл резервування та випробувано. Це чудово працює.
Це означає, що вам потрібно виконати будь-яке з наведених нижче дій:
Рішенням №2, коли ви не можете отримати файл сертифіката & .p12 від творця, було б просто перевірити параметр "Автоматично керувати підписом".
Це відбувається тому, що профіль надання не може знайти файл для сертифіката, до якого він пов'язаний.
Виправити:
Помилка має бути знищена зараз.
Ця проблема пов’язана з тим, що приватний ключ у сертифікаті у вашому профілі не збігається з таким у вашому брелоку. Я вирішую це шляхом
така ж відповідь із питанням підписання коду у Xcode версії 8 .