Для тих, хто стикається з цією проблемою, які фактично використовують Push Notifications у своїх додатках:
Нещодавно наші термінали розгортки закінчилися, тому ми створили нові розгортки для розробки / продукту стандартним способом, викладеним Apple (я не буду тут детально розбиратись про це, про оновлення в Інтернеті є багато інформації при оновленні. ваші поштовхи на наступний рік використання).
Однак, зробивши це, питання в цьому питанні спливе. Незалежно від того, що ми зробили, ми отримали це повідомлення від Apple після подання нашої програми. Коли ми перевірили налаштування нашого профілю надання послуг дистрибуції в Apple Member Center, все виглядало нормально (Push було ввімкнено для нашого ідентифікатора додатка для продукту / розробника, а наш профіль надання дистрибуції все ще був підключений до цього ідентифікатора програми, ми буквально щойно створили нові термінали на ще один рік, як це є стандартною практикою).
Нарешті, ось що вирішило це для мене:
- Створіть новий профіль надання дистрибуції, що вказує на ваш ідентифікатор програми (залиште поточний у такті)
- У Xcode оновіть профілі резервування через Налаштування> Облікові записи> Виберіть свій рахунок> Деталі> Клацніть піктограму оновлення
- Створіть вручну файл файлу плістів з правами:
- Меню файлу> Новий файл ...
- Виберіть iOS> Ресурс> Список властивостей
- Назвіть новий файл "foo.entitlements" (як правило, "foo" - цільове ім'я)
- Клацніть (+) поруч із "Файлом прав", щоб додати елемент верхнього рівня (редактор списку властивостей використовуватиме правильну схему через розширення файлу)
- Переконайтесь, що цей файл прав використовується в налаштуваннях збірки вашої цілі (Ціль> Налаштування збірки> Пошук "Прав", у CODE_SIGN_ENTITLEMENTS встановіть шлях до файлу прав, який ви тільки що створили)
- Переконайтесь, що ідентифікаційний профіль підпису / коду у вашій цілі встановлено правильно для вашого відповідного профілю забезпечення розподілу / ідентифікації підпису (це має бути очевидним)
- Я не на 100% впевнений, чи це вплинуло на це (це не повинно, оскільки налаштування цілі перекривають налаштування проекту, але я це все одно робив), переконайтесь, що профіль надання проекту / ідентифікатор підпису вашого проекту відповідають вашим цільовим
- У створеному вами файлі прав правою кнопкою миші клацніть порожній файл і виберіть "Показати неочищені ключі / цінності".
- Додайте новий запис до файлу прав під назвою "aps-середовище" та встановіть його значення на "виробництво"
- Одне ключове зауваження, якщо ви раніше використовували права доступу до груп keychain-доступу, ви хочете додати цей ключ і тут, оскільки чомусь він очистився для мене, коли це робиться вручну. Переконайтесь, що значення збігається з значенням, використовуваним у попередніх збірках (ви можете знайти це значення, знайшовши попередню збірку в Організаторі, намагаючись подати в магазин додатків, виберіть свою команду, а потім перед подачею програми натисніть стрілку поруч із Рядок "(X) Entitlements", щоб розширити права та побачити значення прав групи keychain-access group.
- Заархівуйте додаток і спробуйте надіслати його до того, як потраплять до остаточної кнопки "Надіслати". Ви повинні побачити, що це додаток було побудовано за допомогою нового профілю надання, який ви створили в центрі учасників. Скасуйте це зараз.
- Поверніться до центру учасників Apple і видаліть новий профіль надання, який ви створили на кроці 1.
- Повернувшись до Xcode, оновіть список профілів резервування ще раз, повторивши крок 2.
- Тепер знову архівуйте додаток, і ви побачите, що додаток було створено зі старим профілем надання дистрибуції, який ви хотіли використовувати, і правильно має право на середовище aps. Подайте, і ви закінчите.
Я знаю, що це не так докладно, як це повинно бути, як це повинно бути скріншотів, я спробую оновити його за допомогою скріншотів, коли можу, але поки що я зараз перебуваю в кризі часу і хотів отримати суть що я там зробив. Також є дуже ймовірний шанс, що деякі або більшість кроків, які я окреслив, не потрібні, я вкладаю їх сюди, оскільки я їх зробив, і вони, можливо, призвели до остаточного рішення.