Як виправити "не знайдений дійсний рядок права" aps-середовище "для програми" в Xcode 4.3?


153

Я дуже важко намагаюся створити просте просте додаток для iOS, яке може отримувати push-повідомлення. Моя єдина причина цього зробити - це встановити процедуру для використання іншими членами команди і не змогли знайти актуальну робочу версію таких інструкцій в інших місцях Інтернету. Наш магазин досить новий для iOS Dev, я особисто абсолютно недосвідчений у розробці iOS i Xcode. Я натрапив на десятки навчальних посібників, статей та повідомлень про проблеми від Apple та інших країн, і я відчуваю, що я можу бути майже там ...

Ось, де мені довелося (зауважте, що я використовую Xcode 4.3 і намагаюся спочатку розгорнути лише в iOS 5.1. Я вважаю, що деякі речі, можливо, нещодавно змінилися порівняно з попередніми версіями Xcode, але я знову новачок для всіх це - і виявивши його зовсім заплутаним і заплутаним):

1) У мене на iPhone передбачений профіль резервування, який увімкнув функцію Push

2) У своєму тестовому проекті Xcode я отримав той профіль надання, який було обрано як ідентифікатор підпису (у Налаштуваннях збірки> Підпис коду)

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

3) Я отримав свій ідентифікатор пакета в розділі Підсумок та інформація> Спеціальні властивості цілі iOS встановлені належним чином * (я думаю ??)

4) У мене в регістрі викликаютьсяForRemoteNotificationTypes, які викликаються у моєму делегаті didFinishLaunchingWithOptions

5) Я отримав didRegisterForRemoteNotificationsWithDeviceToken і didFailToRegisterForRemoteNotificationsWithError у моєму делегаті, встановлений для реєстрації маркера пристрою або помилки відповідно

6) Увімкнено параметри Enable Entitlements під Звіт.

7) Право внизу, що вибрано файл прав прав - Tinker6 (назва мого тестового проекту), який генерувався автоматично, коли я перевірив Увімкнути права

8) У файлі Tinker6.entitlements у мене з’явилося таке (що я зібрав правильно на основі кількох різних публікацій у мережі, але я не можу знайти нічого остаточного від самого Apple):

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

Оновлено

9) Крім того, я спробував все це без файлу прав, і я отримав фактично такий же результат.

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

<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
    <string>12355456A7.*</string>
</array>

/ завершення оновлення

Коли я намагаюся запустити це на своєму пристрої, я отримую таку помилку у виведенні Xcode:

2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error: 
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' 
entitlement string found for application" UserInfo=0x24a3b0 
{NSLocalizedDescription=no valid 'aps-environment' entitlement string 
found for application}

Я спробував встановити get-task-enable NO, aps-середовище для виробництва, усі чотири можливі комбінації, те саме.

Як я можу пройти це? Де є остаточна документація щодо цього?

- подальше подання -

* Що стосується ідентифікатора пакета, мені все ще не зрозуміло, як це слід встановити стосовно ідентифікаторів додатків та ідентифікаторів профілю в профілі надання. На порталі Provisioning в розділі Ідентифікатори додатків я маю це (знову ж таки, сформулював номер та домен):

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

І встановлено ідентифікатор пакета для двох місць. У мене це:

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

Я зовсім не впевнений, що це правильно, чи потрібно встановити один чи обидва на 12355456A7.com.wever.tinker, хоча я намагався це зробити раніше, але не мав успіху ...

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

Відповіді:


94

Якщо ви створили свій профіль резервування перед налаштуванням app IDpush, спробуйте відновити профіль надання.

Портал iOS Provisioning Portal -> Надання послуг -> Ваш сервер -> EDIT -> Внесення змін -> Завантажити нове забезпечення

Працювали для мене. Тепер я можу використовувати push.


Чи можете ви бути більш чіткими щодо того, що саме означає "відновлення профілю резервування"? Це крок у XCode, на порталі надання, де? Дякую!
рив

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

вибачте, якщо я щільний, але додати / видалити його під "Пристрої"? Або десь під реальним профілем забезпечення, про який йде мова, і якщо так, то де?
рив

Додавання та видалення пристроїв - фокус для відновлення вашого резервування. Вам потрібно відновити один, щоб використовувати push-сповіщення, оскільки воно пов’язане з ідентифікатором додатка та сертифікатом push ..
elp

69

Перш за все, вам не потрібен файл прав, якщо ви не додасте спеціальні пари ключів / значень, які не існують у профілі надання. Коли ваша програма створена, усі права з профілю надання буде скопійовано у програму.

Зважаючи на те, що ви все ще бачите повідомлення про помилку щодо відсутніх прав, я можу лише припустити, що параметри підпису коду не є правильними в налаштуваннях збірки.

Потрібно переконатися, що для конфігурації "Налагодження" вибрано правильний профіль, і щоб бути безпечним, ви вибрали правильний профіль як для "Налагодження", так і для дочірнього вузла з написом "Будь-який SDK iOS":

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

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

Також не забудьте зробити чисту збірку, повністю видалити додаток зі свого пристрою тощо. Це просто для того, щоб у вас не було старого пуху.


За моїм дописом №2 він встановлений правильно, я думаю, хоча я додав уточнюючу скриншот для перевірки. Я також спробував повністю видалити додаток і залишити його на 2 дні за рекомендацією. Я десь побачив, що потрібен день, щоб трохи змінити інформацію (так, я розумію за соломинку !?). Але коли ви говорите "Вам потрібно переконатися, що вибраний правильний профіль для конфігурації" Налагодження ", що саме ви маєте на увазі - де я це обрати?
рив

Якщо натиснути на частину «Розробник iPhone» або інше, що встановлено як поточне значення, ви побачите спадне меню всіх профілів забезпечення, про які знає Xcode. Переконайтесь, що вибрано правильне, або що пункт "Автоматичний розробник" вибирає правильний. Спадне меню повинно показати вам усе.
Майк Веллер

І ви впевнені, що у вас є останній профіль забезпечення? Можливо, у вас є стара версія, від моменту, коли натискання було ввімкнено?
Майк Веллер

2
Ну так, я так вірю. Що я зробив, щоб отримати новий профіль надання послуг, це видалити профіль в Xcode Organizer і з Бібліотеки, і з пристрою, а потім знову на екрані бібліотеки натиснути Оновити. Це відтягнуло її назад від Порталу забезпечення. Потім я додав це до пристрою. І як показано вище, вміст XML-файлу для мобільних
пристроїв

3
Ах, вибачте. Там повинно бути -до шляху: codesign -d --entitlements - /path/to/my.app. На цьому етапі також варто переконатися, що ви знаходитесь в каталозі Debug-iphoneos, оскільки "Show In Finder" іноді може перенести вас у неправильне місце.
Майк Веллер

64

Я зіткнувся з цією проблемою в Xcode 8. Ви повинні ввімкнути Цільові -> можливості -> push-повідомлення. Перевірте скріншот.

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


1
Це мені допоможе !!!! Просто натисніть кнопку ... вирішення моєї проблеми, яку я налагоджую годинами ... Xcode8 теж.
Век Хсяо

3
OMG дякую! Давай Apple, дай нам більш розумне повідомлення про помилку!
Ферран Мейлінч

Xcode 8 вимкнено натискання сповіщень для мого додатка, тому це рішення спрацювало.
Кевін

1
Дякую, я, мабуть, зробив інші кроки налаштування 3 рази, перш ніж знайшов це. Я відчуваю себе ідіотів, але також, що інструменти погані, щоб дозволити цьому бути проблемою.
Колін Флінн

ти врятував мені день, друже!
oskarko

47

Найпростіше це зробити зі своїх облікових записів за допомогою Xcode:

Перейдіть до Xcode -> Налаштування -> Виберіть вкладку "Облікові записи" -> Переглянути деталі -> Натисніть кнопку оновлення ліворуч внизу -> Готово.

Будуйте заново, і це має працювати.


19

Гаразд, я раніше стикався з проблемою. Оскільки сповіщення про push вимагає реалізації сервера, для мене відтворення профілю не було варіантом. Тому я знайшов це рішення БЕЗ створення нового профілю забезпечення.

Xcode не є правильним вибором правильного профілю забезпечення, хоча ми вибираємо його правильно.

Спочатку перейдіть до організатора. На вкладці "Пристрої" Профілі забезпечення зі списку бібліотеки виберіть потрібний профіль, який ми намагаємося використовувати. Клацніть правою кнопкою миші на ньому, а потім «Розкрити профіль у Finder».

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

Правильний профіль буде обраний у відкритому вікні Finder. Зверніть увагу на назву.

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

Тепер перейдіть до Xcode> Log Navigator. Виберіть фільтр для "Усі" та "Усі повідомлення". Тепер на останній фазі (Build Target) шукайте крок під назвою "ProcessProductPackaging" розгорніть його. Зверніть увагу на назву профілю надання. Вони НЕ повинні відповідати, якщо у вас є помилка. введіть тут опис зображення

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

Сподіваюся, це допомагає.


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

18

Відповідь була: почніть спочатку, зробіть все те саме, але створіть новий профіль надання та встановіть його. Це спрацювало. Огляд усіх реквізитів (прав на мобільне забезпечення) виглядає точно так само, як і всі мої запитання тут. Але зараз це працює. Яблуко: ВАТ?

Звичайно, це було б очевидно, якби можна було видалити профілі забезпечення. Але оскільки це неможливо, я не хотів забивати нашу команду купою тестових профілів. І все-таки нарешті втратив терпіння і все-таки спробував це, і все закінчилось. Whatevs.


Створення нового профілю і «бруднити» старий один , так би мовити , в цій другій С.О. питання працював для мене: stackoverflow.com/questions/5681172 / ...
scurioni

Все, що я мав зробити, - це видалити існуючий профіль надання з порталу та відтворити його. Тепер ви можете видалити профілі після оновлення, тому не потрібно створювати новий ідентифікатор програми.
Одіт

Новий профіль надання з таким же ідентифікатором програми та сертифікатом розповсюдження вирішив проблему для мене. +1 :)
Азік Абдулла

18

Видаліть старий профіль надання з XCode в Організаторі.

Потім створіть новий профіль забезпечення для того ж ідентифікатора пакету на порталі надання iOS (після того, як ви ввімкнули натискання).

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

Будуйте, бігайте, це працює.

Я просто це зробив.

Від помилки до успіху у мене пішло 10 хвилин.


Це той, хто працював і для мене. Редагування старого профілю та завантаження не працювало для мене. Дякую!
prageeth

Як корисне доповнення, а не для отримання нового профілю резервування, я міг просто видалити старий
ritmatter

1
Я б дуже рекомендував не робити це вручну. Використовуйте github.com/fastlane/PEM .
фатухоку

16

XCode 6.1.1 і кілька облікових записів розробника Apple

Ще одна відповідь на цю вже досить вичерпну суміш: сьогодні я знову натрапив на це питання, і цього разу це було пов’язано з тим, що у мене було кілька облікових записів яблук. Мені потрібно було спочатку додати 2-й обліковий запис розробника в XCode> Налаштування> Облікові записи> +

Переконайтесь, що функція Push Notification включена

Далі мені потрібно було явно включити покупку через додаток у додатку (раніше цього не потрібно було робити). XCode> (вікно програми)> Цілі> Можливості> Покупка в додатку ВКЛЮЧЕНА (і на цьому етапі мені дали можливість вибрати правильний сертифікат)

Зауважте, що я вже додав сертифікат, що підтримує Push, двічі клацнувши його у Finder.

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


Мені було на голову про це, я думаю, коли я перейшов на бета-версію Xcode 8, він вимкнув перемикач push-сповіщень чи щось. Дякую
INVINCEable

Дякую, саме тому у мене була така проблема. Мій ідентифікатор додатка ввімкнено для придбання через додаток, ігрового центру тощо, але в Xcode / можливостях вони раніше відключені, без проблем. З моменту оновлення до Xcode 8 у мене виникає ця проблема. Після ввімкнення IAP та ігрового центру в Xcode проблема не зникає!
Етан Лонг

11

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

Тож переходьте до

Xcode> Налаштування> Облікові записи> Переглянути деталі (Виберіть свій рахунок)

Потім оновіть файли резервування.


7

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

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


У мене теж було це питання. Xcode 5 досить добре оновлює будь-які профілі забезпечення. Служба APNS я додав пізніше в розробці. Ви повинні переконатися, як зазначений вище плакат вказує, що ваш профіль резервування насправді є профілем, унікальним для програми, над якою ви працюєте, а не з макрої картки.
Майкл

@Michael, як ти в цьому переконаєшся? Я спробував змінити його в налаштуваннях збірки (у розділі Підписання коду), який наразі не встановлений. Коли я вибираю правильний профіль і будую, він виходить з помилкою, а потім повертається до профілю надання підстановки.
Ян Джеймісон

@ian, яку помилку ти отримуєш? Ви впевнені, що це дійсний профіль?
Майкл

Ах, я сортував це, мені потрібно було завантажити правильний сертифікат на свій Mac. Це, здається, зробило трюк. Дякую.
Ян Джеймісон

Радий це чути. Це те, що я зазвичай роблю, коли здається, що налаштування є правильними. Повторити всі серти. Здається, це питання більше разів.
Майкл

6

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

Що для мене працювало врешті-решт

  1. Виконайте, як було запропоновано вище, і створіть ідентифікатор APP
  2. Потім створіть профіль надання
  3. НЕ використовуйте профіль підстановки команди (керується xcode one) у розділі розробки забезпечення. Вам потрібно зробити окремий, використовуючи той ідентифікатор додатка, для якого ви активували push-сповіщення. Таким чином, коли ви розробляєте його, буде вбудована функція push-повідомлення.

Я не знаю, чи можна ввімкнути це для програми wildcard, але спробувавши принаймні 12 різних пропозицій та втративши кілька днів, я сподіваюся, що це комусь допоможе


2
Але це нічого не додає до існуючих відповідей, які вже дають цю пораду. Очевидно, що додатковій програмі потрібен власний профіль; Документи цілком зрозумілі, що профіль підстановки не може використовуватися для будь-якої програми, яка потребує спеціальних прав.
мат

1
Я це зробив, але моя програма коли-небудь вибиратиме профіль надання простий кодів, я не можу змусити його вибрати той, у якому ввімкнено push-сповіщення.
Ян Джеймісон

3

Ви згадуєте профіль резервування, але я не бачу жодної згадки про профіль Apple Push.

Щоб використовувати Push, у вас повинен бути push-профіль (два - один для розробки та один для випуску). Після його створення вам потрібно переконатися, що він містить відповідні сертифікати (див. Розділ РЕДАКТУВАННЯ нижче).

Це відмінний підручник, який пройде вас через усі етапи:

http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

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

PS Я вважаю, що вам більше не потрібні права, це спадщина.

РЕДАКТУВАННЯ: Ви також повинні перевірити, чи є у вас потрібні профілі на пристрої - перейдіть до налаштувань, потім загальне, профілі, перевірте, чи перераховані ваші профілі, особливо, звичайно, push-профіль. Ви також можете перевірити це в розділі Організатор XCode. У Організаторі є два розділи, у яких йдеться про профілі забезпечення - один у верхній частині зліва в Бібліотеці (це профілі в XCode, які ви використовуєте для підписання тощо). - це профіль, встановлений на трубці. Якщо їх у вас немає на телефоні, ви можете завантажити їх з веб-сайту порталу резервування, а потім натисніть кнопку Додати внизу вікна Організатора.

Перебуваючи на порталі резервування, ви також повинні перевірити, чи містить Apple Push Profile сертифікати: - натисніть Надання в меню ліворуч - ви побачите список свого профілю, виберіть РЕДАКТИРУЙТЕ push-профіль Apple - ви побачите розділ сертифікатів зі списком розробників або тестувальників тощо у вашому проекті, переконайтесь, що прапорець встановлений. - ви також побачите розділ пристроїв, переконайтеся, що додано пристрій, на який ви тестуєте.

Якщо у XCode або на пристрої є старі профілі, видаліть їх та завантажте / оновіть / встановіть усі нові профілі з порталу забезпечення


Якщо права є спадщиною, то чому я отримую повідомлення зі скаргами на відсутність прав? Я вже дотримувався пов'язаного підручника до листа, не пощастивши ... хоч дякую.
рив

Крім того, я додав інформацію про власний файл mobileprovision, який може бути корисним.
рив

це правда, я навіть не налаштовую жодного .entitlements для успішного надсилання сповіщень. Одне, що мене спонукало, коли я це робив, - це те, що мені потрібно завантажити мобільну програму вручну, а потім перейти до створення параметрів та змінити ідентифікацію підпису на відповідну тій, яку тільки що завантажили.
X Slash

Я теж отримав повідомлення про помилку щодо прав, якийсь давно, його червона оселедець, див. Відповідь Майка Веллера, саме це я зробив у своїй справі.
Gruntcakes

Я оновив відповідь ще кількома речами, які вам слід перевірити.
Gruntcakes

2

Я сам наткнувся на цю саму проблему. Для мене проблема полягала в тому, що назва мого продукту ($ TARGET_NAME) не пишеться з великої літери так само, як представлено в сертифікаті, наданому Apple. Наприклад, у мене був com.companyid.APNDemo, тоді як Apple Cert використовував com.companyid.apndemo.

Я змінив ціль, щоб вона була малою, і вона спрацювала. Примітка. Підказкою для мене було те, що налаштування кодування в Налаштуваннях збірки було встановлено моїм сертифікатом розробника за замовчуванням; не профіль надання APNTest.


1

Дуже багато наведених відповідей вірні. Однак, мабуть, існує більше однієї можливої ​​помилки при вирішенні цього.

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

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


1

На це мені знадобилися години, щоб вирішити. Зважаючи на те, що хтось використовує власні сценарії для підписання та упаковки, а інші використовують сам xcode, є лише один спосіб перевірити, що закінчилося у вашій програмі. Дамп ви отримуєте права

codesign --display --entitlements :- path/to/MyApp.app

і перевірити aps-environmentі application-identifier.


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

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

1

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

Рішення - поновити сертифікат і підписати заявку з ним.


1

Потрібно переконатися, що у профілях резервування ( https://developer.apple.com/account/ios/profile/ ) є профіль розповсюдження iOS.

Коли ви завантажуєте з xCode в App Store, переконайтеся, що у ваших правах є середовище aps. Якщо ні, завантажте їх із Переглянути облікові записи -> Переглянути деталі -> Завантажити всі.


1

У мене було подібне питання. Я підстрибував між XCode 7 і 8 з різних причин. Після використання 8 для побудови вам потрібно буде використовувати 8. Я просто використав Xcode 8 і застосував деякі запропоновані вище зміни, і це спрацювало.



0

Здається, що в Xcode 4.6 є "химерні" права "автоматичних".

Існує файл Entitlement.plist для кожного SDK за адресою:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/Entitlements.plist

Принциповим рішенням, який я придумав, було відредагувати цей файл і додати підлий ключ ап-середовища вручну, як-от так:

<?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>
    <key>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>aps-environment</key>
    <string>development</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>
</dict>
</plist>

Тоді Xcode генерує правильний Xcent-файл, який містить ключ середовища aps за адресою:

/Users/mySelf/Library/Developer/Xcode/DerivedData/myApp-buauvgusocvjyjcwdtpewdzycfmc/Build/Intermediates/myApp.build/Debug-iphoneos/myApp.build/myApp.xcent

Ви можете знайти, де створений файл Xcent за допомогою навігатора журналу Xcode,
шукайте "ProcessProductPackaging".

На жаль, це єдиний спосіб, який я знайшов, що вирішує проблему .
(і нарешті зможете правильно отримати токен зараз)

Просто цікаво, чи є ще одне елегантніше рішення.
Будь ласка, дивіться моє запитання щодо більш детальної інформації про це:
автоматичне право Xcode 4.6 не працює - "немає дійсного aps-середовища"


0

Перед видаленням та відновленням AppID / Профілів переконайтесь, що у вашій бібліотеці та пристрої встановлені однакові (і правильні) профілі.

Я почав бачити цю помилку після переходу на новий комп'ютер. До міграції Push працював правильно.

Проблема полягала в тому, що я не імпортував профілі в бібліотеку Xcode на новій машині (в Організатор / Пристрої в розділі Бібліотека-> Надання профілів).

Заплутаною частиною було те, що ПРИСТРІЙ вже мав правильні профілі, і вони показали, як очікувалося, в налаштуваннях збірки, тому там все виглядало правильно, але в БІБЛІОТЕКІ XCode їх не було, тому він підписував додаток з ... ?? ?


0

Це було для мене виправленням. (Я вже спробував увімкнути / вимкнути можливості, відтворити профіль надання тощо).

На вкладці " Налаштування збірки" в розділі Право підпису коду мій файл .entitlements не посилався на всі розділи. Після того, як я додав його до розділу будь-якого SDK , помилка була усунена.

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


0

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

Якщо ви хочете, щоб програма отримувала віддалені сповіщення (push-повідомлення), вам потрібно використовувати явний ідентифікатор програми , наприклад com.tutsplus.push , а не com.tutsplus. *

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

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