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

Будь-яка допомога буде вдячна.

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

Будь-яка допомога буде вдячна.

Відповіді:
Я не впевнений, чому це виправлено, але я зайшов на вкладку Можливості цілі, увімкнув iCloud, спробував виконати збірку архіву, вона не вдалася, я знову вимкнув iCloud, спробував зробити збірку архіву, і це вдалося, і після цього він знову зміг автоматично розпізнати сертифікати.
Клацніть правою кнопкою миші на Finder -> Перейти до папки ...
~/Library/MobileDevice/Provisioning
Для Xcode 11
~/Library/MobileDevice/Provisioning Profiles/
Видалити всі профілі підготовки, готово.
~/Library/MobileDevice/Provisioning Profiles/
Створена вами програма має неправильне application-identifierзначення, на що очікує профіль підготовки. Сертифікат для appID com.example.foo для команди 2ABCDEFG буде очікувати ідентифікатор програми: 2ABCDEFG.com.example.foo, ваша програма заявила, що її ідентифікатор app був com.example.foo, але ідентифікатор програми не збігався , або ви використовуєте неправильний префікс команди, або ви неправильно налаштували bundleID.
У моєму випадку я використовую схеми побудови, щоб дозволити мені створити додаткову програму та програму qa. com.example.foo для продукту та com.example.foo.qa для контролю якості. Я встановив мій bundleIdentifier в Info.plist на $ (PRODUCT_BUNDLE_IDENTIFIER) $ (BUNDLE_SUFFIX), який чудово працює в симуляторі та на пристрої для роботи з різними програмами, однак, коли програма генерує свій ідентифікатор програми на етапі архівування, не повинен читати bundleIdentifier, згенерований Info.plist.
Щоб виправити ситуацію, я відредагував FooProject.xcodeproj / project.pbxproj (за допомогою текстового редактора), щоб змінити мою збірку QA BuildSettings PRODUCT_BUNDLE_IDENTIFIER на com.example.foo.qa
Ви можете ознайомитися з Технічними запитаннями та відповідями Apple, щоб побачити, як вони глибоко занурились у вирішення цього питання. Після запуску прав кодового дизайну на експортованій програмі та перегляду ідентифікатора програми, з якою щойно була створена ваша програма, повинно бути досить швидко зрозуміти, що ви робите неправильно. https://developer.apple.com/library/content/qa/qa1879/_index.html Я не знайшов цю сторінку в своєму пошуку в Google, оскільки вони насправді не використовують фразу з повідомлення про помилку або викликають програму -identifier на повне ім'я, але замість цього скажіть ID програми.
Крім того, вирішення цієї проблеми не полягає у створенні нового профілю підготовки, який має дозвіл ідентифікатора програми, він має це дозвіл, однак значення в профілі підготовки та ваш додаток повинні відповідати.
Можливо, файл .entitlements {project} відсутній. Виконання згаданого @samkass автоматично генерує файл, і він буде працювати. Отже, просто перейдіть на вкладку можливостей, увімкніть що-небудь і вимкніть її.
Змінивши перемикач iCloud на, увімкнення та вимкнення iCloud, ми позбулися помилки, сказавши, що:
Профіль не збігається зі значеннями файлу прав для ідентифікатора програми та прав доступу до групи ключів.
У Xcode 11 це може статися, коли у вашому проекті немає файлу .entitlement. Рішенням було б додати будь-яку випадкову можливість, натиснувши "+ Capability" у розділі "Signing & Capabilities" (що веде до створення файлу .entitlement), а потім видалити цю можливість. Це дозволить вам автоматично надати сертифікат.
Будь ласка, перевірте функції своєї програми, які потрібні для вашої програми, наприклад, при купівлі додатка, push-сповіщення, аудіо інтер App, комплект Siri тощо.
Це єдина причина такого типу помилок.
Переконайтеся, що в ідентифікаторі вашого додатка мають бути вказані вищезазначені прапори.
Найчастіше це трапляється, коли ви не налаштували push-сповіщення, при придбанні програми у вашій розробці ID програми.
Для мене фокус полягав у тому, щоб
У моєму випадку проблема полягала в наступному: профіль підготовки, що використовується для кроку побудови, був створений для іншого ідентифікатора програми, ніж профіль підготовки, який використовується для кроку експорту.
Тож переконайтеся, що ви використовуєте той самий профіль підготовки для етапу побудови та експорту.
Перевірте можливості додатка з параметрами, які ви ввімкнули для свого ідентифікатора програми в обліковому записі розробника.
TL; DR: перевірте свій ідентифікатор програми та переконайтеся, що послуги відповідають вашому цільовому показнику.
Зі мною сталося те, що я дозволив Xcode 10.1 допомогти мені створити ідентифікатор програми, і після цього я зіткнувся з проблемою, як описано тут. (Я вибрав ідентифікатор програми whildcard, коли створював програму в iTunesConnect, тож навіть не підозрював, що це було зроблено.) Коли я відкрив портал розробників iOS, новий ідентифікатор програми автоматично вмикає Game Center і In App Purchase.
Оскільки мені не вдалося увімкнути Game Center у вашому Target -> Capabilities, я ввімкнув In Purchase App, і тоді мою програму можна було підписати та завантажити.
Коли ми зіткнулися з однією і тією ж проблемою, ми спробували всі перераховані вище речі, але жодна з них не спрацювала.
Нам вдалося змінити ідентифікатор набору, щоб він не був ідентичним попередньому, наприклад "com.name.App" на "com.name.App2"; нехай xcode намагається отримати / створити профіль підготовки, а потім повернути його до початкового.
Отримав цю ідею з цієї теми на форумах розробників Apple - https://forums.developer.apple.com/thread/114539
Нещодавно я зіткнувся з цією сторінкою після спроби створити повторювану ціль - жодна з пропозицій не працювала мені. Подальше розслідування та деяке висмикування волосся зрештою призвели до того, що я переглянув налаштування збірки мого додатка, щоб спробувати з’ясувати, що не так.
З’ясувалося, що мій проект все ще вказував на файл дозволів цілі ORIGINAL, а не мав власний. Щоб вирішити цю проблему, я перейшов до оригінального файлу прав у Finder (наприклад, $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ), створив копію в тій же папці, а потім перейменував її (наприклад, NewTargetName.entitlements).
Потім я відкрив новий файл прав і змінив поле ідентифікатора програми, щоб відповідати закінченню ідентифікатора набору моєї нової цілі (наприклад, ABCDEFGH.US.co.fake-company.superduperapp-newtargetname ).
Нарешті, я оновив поле «Код підписання прав» у налаштуваннях збірки до шляху до мого файлу прав (для мене це було щось на зразок $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ).
Я повернувся до вкладки Підписання та можливості, і ось, проблема була виправлена. Сподіваюся, хтось там знаходить це корисним.
У мене виникла проблема з абсолютно новим додатком, у Xcode 12 beta 3 ( подання програм розпочалось сьогодні ).
У Xcode було включено "Автоматичне керування підписанням". Однак ідентифікатор команди, який відображається в "Сертифікаті підписання", не збігався з ідентифікатором команди, що відображається на веб-сайті iTunes Connect. Це було першопричиною, яка перешкоджає завантаженню програми.
Як я це виправив:
Я зіткнувся з тією ж проблемою під час налаштування конвеєру Gitlab, який запускає cmd exportArchive і завантажує в AppStore. Мені вдалося змусити його працювати, змінивши DEVELOPMENT_TEAM у налаштуваннях збірки на ту саму команду, яку було вибрано в розділі Підписання та сертифікати.
Оскільки раніше для нього було встановлено порожнє значення, яке за замовчуванням використовувало інший ідентифікатор DEV TEAM, який був неправильним і не збігався, і він скаржився на те, що "ідентифікатор програми" = 12331232.com.bannana.apples.peach не відповідає. Що призвело мене до встановлення правильної команди DEV, і це спрацювало.
Xcode ver: Версія 11.3.1
Сподіваюся, це комусь допоможе.
Кілька цілей:
... і використовуйте iCloud.
Увімкнення та вимкнення iCloud для нас не було можливості. Ми вже використовуємо його у виробництві, і, скоріше, не возитись з ним ... Я отримав повідомлення оригінального запитання і цю варіацію в якийсь момент:
Профіль не збігається зі значеннями файлу прав для ідентифікатора програми та прав доступу до групи ключів.
Натякаючи на інші відповіді тут, ми переконалися, що всі цілі матимуть .entitlementsфайл. Якщо ціль не мала жодної, ми створили порожню таку форму так:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>
... і вказав, що його ціль Code Signing Entitlementу Build Settingsпорожньому .entitlementsфайлі.
Вирішено!
Видалити всі профілі, розташовані в ~/Library/MobileDevice/Provisioning Profiles/
entitlements.plistфайл.