Не существует допустимой строки права доступа aps-environment, найденной для приложения в магазине приложений.

Итак, у меня есть это приложение под названием "Капельница", которое я выпустил около месяца назад, а затем обновление пару дней назад. Обновление добавило push-уведомления и несколько небольших настроек. Я тестировал его с помощью sandbox-apn, используя профиль разработки, и все отлично работало. Затем я переключил все на производство и подтолкнул его к испытательному полету, и все получилось отлично. Как только я разместил обновление на рынке и запустил его, я заметил, что я не получил никаких новых регистраций на сервере. Я посмотрел на консольные журналы для устройства и нашел это:

4 декабря 17:55:15 Ina-touch-it coffco [1210]: Регистрация для удаленных уведомлений
Dec 4 17:55:15 Ina-touch-it SpringBoard [52]: нет правильной строки права доступа" aps-environment" для приложения "Капельница": (null). Уведомления не будут доставлены.
Dec 4 17:55:15 Ina-touch-it coffco [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}

Я немного смущен, потому что я думал, что production-apn будет работать одинаково между сборками ad-hoc и app store.

Вот мой идентификатор приложения и его права → http://i.stack.imgur.com/uf4pB.png

Вот профиль обеспечения для магазина приложений → http://i.stack.imgur.com/AYOV5.png

Ответ 1

Я исправляю эту проблему, предоставляя возможность push-уведомления.

Нажмите на .xcodeproj → Возможности → Включить Push Notification

Ответ 2

Я исправил эту проблему следующим образом:

  • Перейдите в "Настройки" Xcode
  • Перейдите на вкладку "Аккаунты".
  • Выберите мой идентификатор Apple и нажмите "Просмотреть детали"
  • Нажмите на стрелку в нижнем левом углу, чтобы обновить
  • Нажмите "Готово"

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

Источник:

Ответ 3

Вам необходимо включить функцию Target- > capability- > push. Я столкнулся с этой проблемой, используя Xcode 8. введите описание изображения здесь

Ответ 4

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

Поэтому для решения проблемы создайте новый профиль Provisioning Profile и выберите профиль Provisioning Profile в Xcode. Затем вы ДОЛЖНЫ.

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

Ответ 5

У меня была такая же проблема с использованием версий iOS 8.0 и выше; Я не получил токен устройства и выдавал ошибку: "нет допустимой строки прав доступа aps-environment, найденной для приложения"

Я исправил его, используя следующие шаги

  • Я создал новый профиль подготовки для id приложения
  • добавлено в xcode
  • project Перейти к Xcode "Настройки"
  • Перейдите на вкладку "Учетные записи". Выберите свой идентификатор Apple и нажмите "Просмотреть детали".
  • выберите профиль профилей
  • Нажмите на стрелку в нижнем левом углу, чтобы обновить
  • Нажмите "Готово"

и теперь запустить проект определенно, он будет работать.

Ответ 6

По какой-то причине решение Wei не работало для меня. При нажатии на права Fix, Xcode сгенерировал два файла, и он все еще не функционировал, действительно, сгенерированные файлы прав были пустыми.

Это было вызвано (по-видимому) PRODUCT_NAME проекта довольно длинным и включает пробелы и буквы "ä" и "ö". После того, как вы изменили его на короткую версию с буквами только на английском языке, исправление Wei работало правильно.

Ответ 7

Относительно Xcode 9, некоторые ответы устарели или неполны, чтобы решить эту специфическую проблему.

Вот шаги для меня:

1. Создайте профиль обеспечения

(FCM не является обязательным условием для push-уведомлений, но их руководства поразительно ясны, вот ссылка)

Чтобы протестировать ваше приложение в процессе разработки, вам необходим профиль обеспечения для разработки, чтобы авторизовать ваши устройства для запуска приложения, которое еще не опубликовано в App Store.

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

2. Активируйте возможности push-уведомлений

  1. Перейти к редактору проекта, из официального руководства enter image description here
  2. В разделе "Возможности" активируйте push-уведомления enter image description here

Ответ 8

Мне потребовалось некоторое время, чтобы выяснить, что не вызывает действительной ошибки прав доступа aps-environment. Проблема заключалась в том, что в проекте XCode было два файла .entitlements. Один - это права платформы /ios//., А другой - платформа /ios//Ресурсы/.entitlements, и соответствующие права присутствуют в первом файле только тогда, когда XCode настроен на использование последнего. Я обновил последний файл вручную, и все начало работать. Еще одна возможность исправить это - изменить .entitlements, который используется XCode. Это можно сделать в настройках Build → Signing → Code Signit Entitlements.

Я не уверен, почему в XCode есть два файла .entitlements. Может быть, плагин Cordova Push создал второй (я разрабатываю гибридное мобильное приложение Cordova)? И какое правильное расположение для файла .entitlements?

Ответ 9

Я столкнулся с этой проблемой и решил ее первым решением.

Тем не менее, я однажды потерпел неудачу, потому что у меня было две учетные записи Apple. После удаления одного все стало работать.