У додатку в магазині додатків не знайдено дійсних рядків "aps-середовище"


103

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

4 грудня 17:55:15 Ina-touch-it coffco [1210]: Реєстрація для віддалених сповіщень
4 грудня 17:55:15 Spring-Board Ina-touch-it [52]: для додатка не знайдено дійсного рядка права "aps-середовище" 'Dripper': (null). Повідомлення не будуть доставлені.
4 грудня 17:55:15 coffco Ina-touch-it [1210]<Warning>: Failed to register with error : Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x174270900 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}

Я трохи розгублений, тому що думав, що виробництво-apn буде функціонувати однаково між тимчасовими і додатками.

Ось мій ідентифікатор програми та його права -> http://i.stack.imgur.com/uf4pB.png

Ось профіль забезпечення магазину додатків -> http://i.stack.imgur.com/AYOV5.png


Тут він підписується та завантажується -> i.stack.imgur.com/AziCI.png Налаштування збірки -> i.stack.imgur.com/j2TFG.png
Jessiah

Відповіді:


282

Я вирішую цю проблему, ввімкнувши можливість натискання.

Клацніть на .xcodeproj -> Можливості -> Увімкнути повідомлення Push


15
У XCode 8 в цьому розділі я побачив помилку, в якій говорився, що потрібно додати файл прав. Я натиснув на це, щоб виправити це, і тоді це працювало нормально.
Пеллет

Лише нещодавно вискочив, коли почав розробляти Xcode 8, і це виправило. Дякую!
Коді Р.

Раніше працював над Xcode 7.3, але раптом не реєструвався на Xcode 8, але це вирішило мою проблему, включивши можливість push-повідомлення.
Вінод Ратод

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

У списку можливостей не з'явилася опція "Надіслати повідомлення". Це було щось пов’язане з тим, що XCode автоматично генерував мій профіль резервування (я новачок у iOS Dev, тому я можу помилитися ...). Мені довелося увійти до свого облікового запису розробника і вручну створити профіль забезпечення для мого додатка, перш ніж він відображатиме Push Notifications у списку можливостей. Нарешті, ввімкнувши це виправити це питання.
Макс Мамфорд

103

Я вирішив цю проблему так:

  • Перейдіть до Xcode "Налаштування"
  • Перейдіть на вкладку "Облікові записи"
  • Виберіть мій Apple ID і натисніть "Переглянути деталі"
  • Натисніть стрілку в нижньому лівому куті, щоб оновити
  • Натисніть "Готово"

І спробуйте ще раз!

Джерело:


6
то ви повинні вибрати правильний профіль резервування у програмі Build Setting
Hashem Aboonajmi

2
У моєму випадку мені потрібно було відновити профілі резервування в центрі розробок. Потім завантажте всі профілі та сертифікати знову через Xcode> налаштування> Облікові записи> Ваш Apple ID> кнопка перегляду деталей у правому куті> кнопка завантаження всіх. Після цього він повинен працювати знову.
blackjacx

2
Мені сумно, що в процесі натискання та розгортання стільки глюків. Єдиний спосіб я терпіти будь-що з цього - це зробити 100% все вручну і знати, що Xcode намагається зробити, а також керувати ідентифікаціями Keychain та профілями надання файлів у файловій системі та за допомогою утиліти налаштування iPhone.
Том Пейс

57

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


18

Такі проблеми пов'язані з тим, що поточний профіль забезпечення не містить інформації про APNS, оскільки профіль надання надається перед створенням сертифіката APNS.

Тому, щоб вирішити проблему, створіть новий профіль надання та виберіть профіль надання в Xcode. Тоді ви ЗРОБАНІ.

Крім того, коли ви додаєте push, я вважаю, що ви також оновили сертифікати в брелок.


Профіль, який я використовую, був створений після того, як я створив сертифікат для виробничого push apn. Чи можу я щось зробити, щоб підтвердити, що він відсутній або містить інформацію про apns?
Джессія

@Jessiah: Ні, це так, як ми повинні йти кроками, які надає Apple.
Фахім Паркар

6

Щодо Xcode 9, деякі відповіді застарілі або неповні для вирішення цього конкретного питання.

Ось наступні кроки для мене:

1. Створіть профіль забезпечення

( FCM не є обов'язковою умовою для push-сповіщення, але їх посібники дивно зрозумілі, ось посилання )

Щоб перевірити ваше додаток під час розробки, вам потрібен профіль надання послуг для розробки, щоб авторизувати ваші пристрої запускати додаток, який ще не публікується в App Store.

  1. Перейдіть до Центру учасників Apple Developer і ввійдіть.
  2. Перейдіть до Сертифікатів, Ідентифікаторів та Профілів.
  3. У спадному меню у верхньому лівому куті виберіть iOS, tvOS, watchOS, якщо його ще не вибрано, а потім перейдіть до пункту Надання профілів> Усі.
  4. Натисніть кнопку +, щоб створити новий профіль надання послуг.
  5. Виберіть Розробка додатків iOS як тип профілю надання, а потім натисніть Продовжити.
  6. У спадному меню виберіть ідентифікатор додатка, який ви хочете використовувати, а потім натисніть Продовжити.
  7. Виберіть сертифікат розробки iOS для ідентифікатора програми, який ви вибрали на попередньому кроці, а потім натисніть Продовжити.
  8. Виберіть пристрої iOS, які потрібно включити до профілю надання, а потім натисніть Продовжити. Обов’язково виберіть усі пристрої, які ви хочете використовувати для тестування.
  9. Введіть ім’я цього профілю забезпечення (наприклад, профіль розробки додатків Firebase) та натисніть кнопку Створити.
  10. Клацніть Завантажити, щоб зберегти профіль забезпечення на вашому Mac.
  11. Двічі клацніть файл профілю Provisioning Profile, щоб встановити його.

2. Активуйте можливості Push Notification

  1. Перейдіть до редактора проекту з офіційного посібника введіть тут опис зображення
  2. У розділі можливостей активуйте Push Notification введіть тут опис зображення

4

У мене була така ж проблема з використанням версій iOS 8.0 і вище; Я не отримав маркер пристрою і помилився: "для програми не знайдено дійсної рядка" aps-середовище ""

Я виправив це за допомогою наведених нижче кроків

  • Я створив новий профіль надання ідентифікатора програми
  • додав його в xcode
  • проект Перейдіть до Xcode "Налаштування"
  • Перейдіть на вкладку "Облікові записи" Виберіть мій Apple ID і натисніть "Переглянути деталі"
  • виберіть свій профіль резервування
  • Натисніть стрілку в нижньому лівому куті, щоб оновити
  • Натисніть "Готово"

і тепер запусти проект, він обов'язково спрацює.


3

Чомусь рішення Вей не працювало для мене. Натискаючи права на виправлення, Xcode генерував два файли, і він все ще не функціонував, і справді створені файли прав були порожніми.

Це (мабуть) було спричинено тим, що PRODUCT_NAME досить тривалий і включає пробіли та літери "ä" та "ö". Після зміни його на коротку версію з англійськими літерами виправлення Вей працювало правильно.


1

Мені знадобилось певний час, щоб зрозуміти, що не викликає помилки права на aps-оточення. Проблема полягала в тому, що в проекті XCode було два файли .entitlements. Один - права платформи / ios //., А інший - платформа / ios // Ресурси / .entitlements, а відповідні права є в першому файлі лише тоді, коли XCode налаштований використовувати останній. Останній файл я оновив вручну і все почало працювати. Інший варіант виправити це - змінити, які .entitlements використовує XCode. Це можна зробити в налаштуваннях збірки -> підписання -> параметр налаштування права підпису коду.

Я не впевнений, чому в XCode є два файли .entitlements. Чи може бути, що плагін-модуль cordova створив другий (я розробляю гібридний мобільний додаток cordova)? І яке правильне розташування для файлу .entitlements?


-1

Я випробував це питання і вирішив його першим рішенням.

Однак я не зміг одного разу, тому що в мене було зареєстровано два акаунти яблук. Після того, як його зняли, усе стало спрацьовувати.

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