Не найдена допустимая строка права "aps-environment" для приложения в app store


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

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

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

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

вот профиль подготовки для магазина приложений -> http://i.stack.imgur.com/AYOV5.png

8 71

8 ответов:

я исправляю эту проблему, включив функцию push-уведомления.

нажать на кнопку .xcodeproj - > возможности - > включить Push-уведомление

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

  • перейти к Xcode "Preferences"
  • перейдите на вкладку "Учетные записи"
  • выберите мой идентификатор Apple ID и нажмите "Просмотреть сведения"
  • нажмите на стрелку в левом нижнем углу, чтобы обновить
  • Нажмите Кнопку "Готово"

и попробовать опять!

источник:

вы должны включить Target - > capabilities - > push notification. Я столкнулся с этой проблемой с помощью Xcode 8. enter image description here

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

поэтому, чтобы решить проблему, создайте новый профиль подготовки и выберите профиль подготовки в Xcode. Тогда вы закончили.

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

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

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

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

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

Что касается Xcode 9, некоторые ответы устарели или неполны для решения этой конкретной проблемы.

вот шаги, чтобы следовать за мной:

1. Создайте профиль подготовки

(FCM не является обязательным условием для уведомления толчка, но их гиды удивительно ясно,вот ссылка)

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

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

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

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

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

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

Мне потребовалось некоторое время, чтобы выяснить, что вызывает отсутствие допустимой ошибки APS-environment entitlement. Проблема была в том, что их было двое .файлы прав в проекте XCode. Один из них-Платформа / ios//.права и еще один-platform/ios//Resources/.права и соответствующие права присутствуют в первом файле только тогда, когда XCode настроен на использование последнего. Я обновил последний файл вручную, и все начало работать. Другой вариант исправить это-изменить .права используются XCode. Это можно сделать в настройках сборки -- > Signing --> Code Signing Entitlements config param.

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